Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- sql injection
- 가상머신 os
- 2002(HY000)
- ModuleNotFoundError: No module named ‘requests’
- SQL i
- docker compose
- ubuntu
- Lord of SQL Injection
- btmp
- M2
- str_replace함수
- No module named ‘requests’
- SQLi wargame
- los.rubiya.kr
- blind SQLi
- sqli
- UTM
- Error Based SQL Injection
- 우분투
- MySQL
- XAVIS
- goblin 3번
- LOS 5번
- Lord of SQLinjection
- mocOS
- utmp
- 1819 (HY000):
- Python requests 설치
- Kail Linux
- Union SQL Injection
Archives
- Today
- Total
klaus
[Lord of SQL Injection] vampire 9번 문제 본문
0.vampire
1. 전체 코드
2. 주요 코드 분석
if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
$_GET[id] = strtolower($_GET[id]);
$_GET[id] = str_replace("admin","",$_GET[id]);
$query = "select id from prob_vampire where id='{$_GET[id]}'";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id'] == 'admin') solve("vampire");
- Preg_match를 통해 ', '대소문자 필터링이 됩니다.
- $_GET[id]를 통해 들어온 id는 strtolowe함수를 통해 전달받은 id는 소문자로 치환됩니다.
- admin은 str_replace함수를 통해 문자열이 삭제됩니다.
하지만, str_replace함수를 사용하긴 했지만 문자열 안에 문자열을 넣는다면 replace 되는 문자는 공백으로 바뀌게 됩니다.
그럼 해당 문자열을 중간에 끼워 넣는다면 어떻게 될까요?
예) adadminmin이런식으로 작성하여 문제를 풀어보도록 하겠습니다.
3. str_replace함수
함수를 사용할 때에는 제대로 사용하는 것이 중요하다는 점입니다.
str_replace을 사용할 때에는 대체자를 명시하여 공백이 없게 하는 것이 중요하다는 점입니다.
예를 들어 str_replace("admin","exit!",params)와 같이 작성하여 대체를 하는 것입니다.
'모의해킹 > Wargame' 카테고리의 다른 글
[Lord of SQL Injection] golem 11번 (0) | 2022.12.09 |
---|---|
[Lord of SQL Injection] skeleton 10번 문제 (0) | 2022.12.08 |
[Lord of SQL Injection] troll 8번 문제(feat. black list, white list) (0) | 2022.12.06 |
[Lord of SQL Injection] orge 7단계 (0) | 2022.12.05 |
[Lord of SQL Injection] darkelf 6단계 (0) | 2022.12.05 |
Comments