blind sql injection advanced

2024. 5. 26. 15:22웹 해킹/Dreamhack Wargame

Blind SQL Injection 문제. 기존 문제의 업그레이드 버전같다.

 

Code

참이면 user — exists 를 출력하고 거짓이면 아무것도 출력하지 않는다.

 

FLAG는 DH{}이므로 substr(upw,1,1)=’D’를 했을때 참이다.

 

이걸 일일히 구하려면 오래걸리니 python으로 자동화 코드를 작성해본다.

일단 FLAG의 길이는 27이다.

따라서 range(1,27)로 작성하여 파라미터 값을 입력해준다.

 

admin’ and substr(upw,str(i),1)=’j 가 참이면 user — exists를 출력하니

exists가 request text안에 존재하면 값을 추가하는 코드

 

코드를 실행해보면

FLAG가 앞의 DH{ 까진 출력되다가 이후 값이 제대로 안나온다.

 

이유는 비밀번호가 아스키코드와 한글로 구성되어 있어서

 

hex(upw)로 16진수 변환을 하여 값을 출력한다.

 

password값을 16진수로 출력하면 다음과 같다.

다음 값을 다시 16진수 변환 후 UTF-8로 출력하면

 

FLAG

 

'웹 해킹 > Dreamhack Wargame' 카테고리의 다른 글

command-injection-chatgpt  (0) 2024.05.26
error based sql injection  (0) 2024.05.26
sql injection bypass WAF Advanced  (0) 2024.05.26
sql injection bypass WAF  (0) 2024.05.26
simple_sqli_chatgpt  (0) 2024.05.26