Layer7
Lord of SQLinjection : vampire, skeleton, golem
whtRy0u
2021. 8. 19. 18:13
● Vampire
id가 admin일 때 문제가 풀림.
코드를 보면 싱글쿼터를 사용할 수 없고, admin이 공백으로 대체되는 걸 알 수 있음. strtolower 함수 때문에 대문자로 Admin을 적어도 소문자로 바뀜.
admin이 공백으로 바뀌는 걸 이용해서 문제를 풀면 됨.
▶ adadminmin => admin
● Skeleton
id가 admin일때 문제가 풀림. 코드를 보면 파라미터를 이용해 pw 값을 받음.
▶ ?pw=123'||id='admin
다음과 같이 했는데 and 1=0 때문인지 문제가 풀리지 않음
▶ ?pw=123'||id='admin'--%20
and 1=0 때문에 문제가 풀리지 않는 것 같아 주석 처리 해주었더니 문제가 풀림
● Golem
or, and, substr(, = 을 필터링 하고 있음. id가 admin일 때 pw를 찾으면 됨
먼저 pw의 길이를 알기 위해 코드를 짜서 실행 시켜보면 pw는 8글자임을 알 수 있음
pw를 구하기 위해 코드를 짜서 pw를 구할 수 있음.
▶ ?pw=77d6290b