티스토리 뷰

writeup/LOS

[Lord of SQL injection] zombie

hoppi 2021. 8. 20. 14:32

66번째 글.

 

 

1. 코드 분석

앞 문제와 똑같지만 문자열 'ace'가 필터링돼있기 때문에 replace() 함수를 쓰지 못할 것이다.

 

 

2. Exploit

information_schema 데이터베이스에 processlist라는 테이블이 있다.

 

 

이 테이블을 살펴보면 info라는 컬럼에 바로 직전에 질의한 쿼리문이 저장되어있다.

이 테이블과 substr을 이용하여 result에 담길 pw값과 쿼리 스트링을 통한 pw값을 똑같게 만들 수 있을 것 같다.

 

 

?pw=' union select substr(info, 38, 72) from information_schema.processlist%23

substr() 함수에서 3번째 인자를 안 줘도 될 것 같았지만 쿼리 맨 마지막에 #옆에 single quote가 있으므로

#까지 인것을 명시해줘야 한다.

 

substr(info, 38)
substr(info, 38, 72)

'writeup > LOS' 카테고리의 다른 글

[Lord of SQL injection] cyclops  (0) 2021.08.24
[Lord of SQL injection] ouroboros  (0) 2021.08.18
[Lord of SQL injection] phantom  (0) 2021.08.16
[Lord of SQL injection] frankenstein  (0) 2021.08.15
[Lord of SQL injection] blue_dragon  (0) 2021.08.09