# 나/pentest (WEB)
Lord of SQL Injection (2번)
SaltLee
2019. 7. 17. 17:41
#2번 -----------------------------------------------------------------------------------------------------------
if($result['id'] == 'admin') 이어야 solve 니까
쿼리 결과의 첫 행이 무조건 admin 이어야 한다~
DB 테이블에 첫 행이 admin 으로 저장되어 있다면 그냥 쿼리를 참으로 만들어 주기만 해도 될텐데
왜냐면 쿼리가 참이면 DB 모든 결과가 출력되므로
어차피 첫 행은 admin 이니까 $result['id'] == 'admin' 을 만족
id | pw | |
1 | admin | 1234 |
2 | guest | 5678 |
DB 테이블에 첫 행이 admin 이 아니라면 id='admin' 으로 지정해줘야 할 것이다~
이렇게 DB에 저장되어 있다면
id | pw | |
1 | guest | 5678 |
2 | admin | 1234 |
아래처럼 출력되게 만들어 줘야
$result['id'] == 'admin' 을 만족하게 되므로..
id | pw | |
2 | admin | 1234 |
pw=') or 1=1# 하면 전체 쿼리는 참이 되는데
DB에 첫 행이 admin 이 아니고 rubiya 로 저장되어 있나 보다~
첫 행이 admin 이 출력되도록 하려면
pw=') or id='admin' and 1=1# 해서 id 를 admin 으로 지정해주면 된다~