SQL injection/lord of SQL

Lord Of SQL injection 20단계-dragon

ys.k 2022. 1. 12. 21:04

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.

20단계 소스코드이다.

소스코드는 간단하다. pw에는 의도를 벗어난 해킹을 막기위한 필터링만 되어있다.

하지만 쿼리의 id 파라미터 뒤에 #이 들어가 있어 뒷부분이 주석처리가 되어있다.

다른건 딱히 안보이고 # 주석만 우회하면 문제는 해결된다.

# 주석은 한줄을 주석처리한다. 하지만 %0a (Line Feed: 프린터에서 종이가 한줄 씩 인쇄되며 나오는 문자) 가 오게되면

주석처리가 끝이난다.

따라서 쿼리는 ?pw=%0a and pw=||+id='admin'--+-  이다.

해결!

시행착오&느낀점

1. 처음에는 db에서 쿼리를 pw 로 다시 줘야한다 생각해서 pw?='%0a&pw=~~ 등으로 쿼리를 주입했었고 역시나 제대로 작동하지 않았다. 하지만 여러 시도를 통해 &를 제거하고 and 식으로 제대로 쿼리문을 작성했더니 제대로 작성했다.

또다시 기본기의 중요성을 배웠다. 파라미터를 재입력할 때  &를 사용할 필요없고 그냥 계속 작성하면 된다...