티스토리 뷰
php mysql에서 addslashes를 이용해서 인젝션을 차단하고 있거나,
euc-kr을 utf-8로 변환을 하는 작업이 있을경우, 멀티바이트를 이용해서 우회가 가능합니다.
두가지 케이스 모두 솔루션은 같으므로, 한번에 설명하겠습니다.
addslashes는 입력스트링 중에 quote(') 가 있다면 앞에 \를 붙여줌으로써, " \' " 로 변환됩니다.
그래서, quote를 소용없게 만드는것이죠.
하지만, 멀티바이트로 보내면 소용이 없습니다.
예를 들어 url encoding 구문으로 %bf%27을 보낸다면, (%27이 quote입니다.)
%bf%5C%27 로 변하게 되고. (%5C가 \ 입니다.)
결국, %bf%5C 가 한글자로 읽히게 됩니다. (유니코드이기 때문에.)
그리고 %27이 \의 간섭을 안받고 자유가 됨으로써, sql injection이 가능합니다.
'기억하자정보 > 보안' 카테고리의 다른 글
preg_replace() 함수를 이용한 PHP WebShell (0) | 2014.11.04 |
---|---|
MySQL Injection에서 LIMIT, quote(따옴표) 우회법 (0) | 2014.01.04 |
MSSQL 인젝션 실행 절차 (0) | 2013.06.20 |
SQL 인젝션 우회 패턴 (2) | 2013.06.19 |
MySQL Injection Cheet Sheet (Including Load File and Outfile for Error Based) + WAF Bypassing Methods (0) | 2013.05.16 |
- 안내
- 궁금한 점을 댓글로 남겨주시면 답변해 드립니다.