티스토리 뷰

반응형

자주는 아니지만 가끔 인젝션 포인트가 order by절인 경우가 있다.

 

이런식으로 asc, desc 만 정해주는 인젝션포인트가 될 수도 있고, 아니면 정렬 기준까지 정해주는 인젝션 포인트 일수도 있다. 위 예시는 해당 포인트에 mysql_real_escape_string 함수가 적용되어 기본적으로 이스케이프 필터링이 적용되어 있는 상황이다.

 

 

이 때, 정렬 했을 때 동일한 데이터가 있다면 우리가 원하는 동작을 할 수 있다.

reg_date로 정렬을 하는데 reg_date가 똑같은 데이터가 있으면 다음 정렬기준을 적용한다.

 

반드시!!!! 똑같은 데이터가 있어야한다!!!

 

우리는 바로 이 다음 정렬기준을 활용하여 원하는 쿼리문을 실행할 것이다.

 

일반적인 select문을 실행해 결과를 보는 형태는 안되고, 이런 경우에는 Time Based Blind SQLi를 이용한다.

select * from ch4njun order by name [ Injection Point ]

 

이런 인젝션 포인터일 경우.

desc, (select sleep(5) from dual where 1=1)

desc, (select sleep(5) from dual where 1=2)

위 두개의 구문을 넣었을 때 첫 번째구문의 경우 sleep(5)가 실행된다.

 

 

마지막으로 Python으로 이런 내용을 자동화시킨 코드를 첨부하면서 마치겠다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함