1번 문제인 gremlin과의 차이점이라면 result['id']가 'admin'과 일치해야한다는 점과 md5로 패스워드가 암호화 된다는 점이다.

php의 if문에서 id값만 체크하기 때문에 pw에는 어떤 값이 들어가도 상관없다.

어떻게 하면 md5를 우회할 수 있을까?




먼저 첫번째 방법은 or을 이용해서 맨뒤에 admin을 추가하는 방법이다. 

query : select id from prob_cobolt where id='' and pw=md5('') || id=('admin')

위의 쿼리문이 아래의 쿼리문과 같이 변형되서 보여짐↓       




두번째 방법은 주석처리 =  # : %23

or 뒤에 id = 'admin을 추가하고 불필요한 부분을 주석처리해준다.




세번째 방법은 id='admin'을 만들어주고 or '1 을 넣어 where이 항상 참이 되게 한다.




'Web Hacking > Lord of SQL injection' 카테고리의 다른 글

06.los darkelf  (0) 2018.03.21
05.los wolfman  (0) 2018.03.21
04.los orc  (0) 2018.03.21
03.los goblin  (0) 2018.03.21
01.los gremlin  (0) 2018.03.20

los의 첫번째 문제이름은 gremlin이다. 

PHP(Hypertext Preprocessor 하이퍼텍스트 프리프로세서)에 대해서 먼저 알아보자. PHP는 프로그래밍 언어의 일종이다. 원래는 동적 웹 페이지를 만들기 위해 설계되었으며 이를 구현하기 위해 PHP로 작성된 코드를 HTML 소스 문서 안에 넣으면 PHP 처리 기능이 있는 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 생성한다. 

include "./config.php";는 외부의 php파일을 코드로 불러와서 사용할 수 있게 한다.

login_chk();함수와 dbconnect()함수는 config.php안에 정의된 함수로 보인다.

preg_match는 $pattern에 주어진 정규표현식을 $subject에서 찾는다.  즉, "prob", "_", "()"만 거른다.


id={$_GET[id]}, pw={$_GET[pw]}과 같은 형식으로 id와 pw를 파라미터로 받아들인다.


id=oiehso0&pw=1'or'1=1을 넣으면 쿼리문의 where절은 참이 된다.



'Web Hacking > Lord of SQL injection' 카테고리의 다른 글

06.los darkelf  (0) 2018.03.21
05.los wolfman  (0) 2018.03.21
04.los orc  (0) 2018.03.21
03.los goblin  (0) 2018.03.21
02.los cobolt  (0) 2018.03.20

+ Recent posts