티스토리 뷰
말투 넘 오타쿠같아..이제 좀 정상적으로 써보겠습니다..
sql injection! 저번에 해봤다고 자신감 붙은채로 시작!
하튼 일단 소스를 보니 index.phps가 주석처리 되어있길래 주소 옆에 /index.phps 를 쳐서 보았다.
#|union|from|challenge|select|\(|\t|/|limit|=|0x
# union from challenge select \( \t \ / limit = 0x 즉 or 로 연결된 단어(?)들은 no에 들어가면 no hack 되어버린다.
공백같은거 쓰지 말라고 하는 듯 하다.
아무거나 넣어보다가 1을 넣으니 guest라고 뜨는걸 발견!
그럼 저번과 비슷하게 2가 admin에 접근할 수 있는 no 값 인듯 하다.
그런데 =가 들어가면 no hack이 떠버리므로 no=2는 안되고 대신 no like 2 라고 적어주어야한다.
$q=@mysql_fetch_array(mysql_query("select id from challenge27_table where id='guest' and no=($_GET[no])")) or die("query error");
앞의 no 값에 1을 제외한 수를 넣어주고 앞의 문장을 무력화 시키 후 no=2 가 되도록 해주어야하는데..
0) or no like 2 를입력해 ("select id from challenge27_table where id='guest' and no=(0) or no =2 )") or die ("query error") 이 되게끔 해주면 되는데 뒤에 문장들은 주석처리해서 없애버린다 --는 주석처리가 되도록 하고 앞뒤에 꼭 공백을 넣어주어야한다고 한다!
즉 0) or no like 2 -- 를 입력해서 ("select id from challenge27_table where id='guest' and no=(0) or no =2 )") -- or die ("query error")
가 되어 뒤에가 주석처리!
2가 맞았으므로 바로 해결!
'웹해킹 공부(webhacking.kr)' 카테고리의 다른 글
webhacking.kr 58번 (1) | 2018.06.03 |
---|---|
webhacking.kr 31번 (1) | 2018.05.27 |
webhacking.kr 25번 (0) | 2018.05.21 |
webhacking.kr 54번 (0) | 2018.05.21 |
webhacking.kr 39번 (0) | 2018.05.14 |