오늘은 webhacking.kr 45번을 풀어보았다.
일단 id와 pw가 guest로 되어 있다.
view-source를 눌러서 본다.
'/admin|select|limit|pw|=|<|>\i'가 id, pw에 들어가면 exit한다고 한다.
result['id']가 admin이어야 solve된다고 한다.
일단 표시한 부분을 보면 id가 id이고 pw가 pw의 md5인 것을 고르라고 한다.
pw에 md5가 들어가는 걸 보면 일단 pw는 알아내기 힘들 것 같다.
코드를 보니 id와 pw에 각각 addslashes를 해준다고 한다.
+addslashes()?
문자열에 특수 문자(ex ('), ("), (\) )가 포함되어 있다면
그 문자 앞에 '\'를 붙이는 역할
밑엔, mb_convert_encoding가 보인다.
+mb_convert_encoding함수에서는 %(a1~fe)\가 하나의 문자처럼 취급되는 취약점이 있다고 한다.
이 때문에 (')를 사용할 수 있다.
preg_match함수를 보니 admin, = 등 사용할 수 없는 것을 볼 수 있다.
이를 이용해서 문제를 풀 수 있을 듯 하다.
guest, guest를 제출해보니,
도메인에 저렇게 표시됨을 확인할 수 있다.
id=1%(a1~fe아무거나)' or id=admin&pw=guest을 입력할 것이다.
=, admin은 사용할 수 없다. 이를 hex로 변환해서 입력한다.
id=1%a1%27||id%20like%200x61646D696E%23&pw=guest
admin ->(hex) 61646D696E
' -> (hex) 23
이런 식으로 입력한다.
끝!
'웹해킹' 카테고리의 다른 글
webhacking.kr 35번 (0) | 2020.05.17 |
---|---|
webhacking.kr(old)46번 (0) | 2020.05.13 |
webhacking.kr(old) 34번 (0) | 2020.04.15 |
webhacking.kr(old) 58번 (0) | 2020.04.14 |
webhacking.kr(old) 39번 (0) | 2020.04.13 |