id!='admin'은 고정적인 것 같고 pw에 값을 입력하는 것 같다.
pw에 참인 값과 뒤 query를 무시할 수 있는 주석을 같이 넣어주면 될 것 같다.
최대 6글자까지 사용할 수 있다.
코드를 보면 #를 사용하지 못한다. 이 대신 사용할 수 있는 것을 찾아보았다.
주석 처리가 가능한 것들
- --
- #
- ;%00
코드를 보면 1과 2는 사용할 수 없기 때문에 3을 사용했다.
현재 ;%00을 넣는다고 치면 query는 pw=(';%00') and id!='admin'가 된다.
그럼 앞에 있는('를 받아줄 게 없기 때문에 똑같이 ')도 추가해준다.
지금 쿼리는 pw=('')만 존재하는 것과 다름없고 현재 쓴 것은 ');%00이고 %00는 1글자로 처리되기 때문에 총 4글자를 사용한 셈이다. 남은 글자는 총 2글자인데 참을 만들어야 한다. 이거에 대해서 고민을 좀 많이 했었는데 현재 있는 것은 ('')이다 여기서 참을 2글자로 만들려면
이렇게 =0를 붙여준다. 찾아보니 1=1과 같은 뜻으로 ('')=0 또한 사용된다. 그러므로 참이 성립되기 위해 =0를 붙여준다.
답 : pw=')=0;%00
'Wargame > Lord of SQLInjection' 카테고리의 다른 글
Lord of SQLInjection 20번 dragon (0) | 2021.12.21 |
---|---|
Lord of SQLInjection 19번 xavis (0) | 2021.12.16 |
Lord of SQLInjection 17번 zombie_assassin (0) | 2021.12.16 |
Lord of SQLInjection 16번 succubus (0) | 2021.12.16 |
Lord of SQLInjection 15번 assassin (0) | 2021.12.15 |