본문 바로가기
반응형

워게임/LOS20

[los - SQL injection] orc ( 4단계 ) [los - SQL injection] orc ( 4단계 ) [ 문제풀이 ] orc는 if(($result['pw']) && ($result['pw'] == $_GET['pw'])) 조건문을 만족해야 해당 문제가 풀린다.. 취약점으로 이용할 수 있는 부분은 $query = "select id from prob_orc where id='admin' and pw='{$_GET[pw]}'"; 와 $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; 이 두군데로 보인다...근데 이 문제에서는 addslashes() 함수를 이용해서 쿼터의 사용을 금지하여서 두번째 쿼리에서는 쿼터 사용이 불가능해진다..여기서는 첫번째 쿼리와 출력되는 e.. 2017. 9. 23.
[los - SQL injection] goblin ( 3단계 ) [los - SQL injection] goblin ( 3단계 ) [ 풀이과정 ] goblin 문제도 이전 문제와 같이 if($result['id'] == 'admin') 조건이 만족이 되야 풀리는 문제이다.. prob _ . ( ) ' " ` 기호가 모두 막혀있어서 다른 테이블로의 접근이나 쿼터사용이 불가능해졌다. id의 값은 guest로 고정이 되어있고 no값을 이용해서만 sql injection이 가능한데 no는 string이 아닌 numeric 값을 받는다. no에 1을 넣었을때 Hello guest라는 문자가 출력되는걸 확인하고 guest는 첫번째 행에 있는걸 추측 해볼 수 있다..그렇다면 guest가 어떤 no에 있는지를 알았기 때문에 앞의 쿼리를 만족하지 못하도록no 값에 2를 주고 뒤이어 .. 2017. 9. 23.
[los - SQL injection] cobolt ( 2단계 ) [los - SQL injection] cobolt ( 2단계 ) [ 풀이과정 ] cobolt에서도 if($reulst['id'] == 'admin') 조건을 만족시켜야 그안에 있는 solve("cobolt")가 실행되면서 문제가 풀린다.여기선 조건문이 실행 되려면 $result['id'] 안에 'admin'이라는 값이 들어있어야 한다.$result는 mysql_fetch_array()를 사용해서 해당 쿼리의 결과에서 한줄의 행을 가져와 저장시켜둔 변수이다.그렇다면 제일 첫번째 행에 id 컬럼이 admin에 대한 값이 들어있어야 한다는 얘기가 된다.. 여기서도 id와 pw값을 쿼터로 감싸 문자로 받는데 여기서도 쿼터에 사용이 따로 막힌게 아니기 때문에string SQL injection이 가능해진다는걸 .. 2017. 9. 23.
[los - SQL injection] gremlin ( 1단계 ) sql injection war game - los.eagle-jump.org - php 코드가 공개되있고 실행된 SQL 쿼리도 볼 수있는 사이트로 이 사이트에서 php와 쿼리가 보이지 않는 상황에도 머리에 그려질수 있도록 연습을 한다. [LOS - SQL INEJCTION] gremlin ( 1단계 ) [ 풀이과정 ] if($result['id'])가 실행되어 안에 있는 solve("gremlin");이 실행되게 하는게 목표이다.그러려면 $result 변수에 id라는 key값에 값이 들어있어야 해당 조건이 true로 된다. pregmatch()를 사용해서 prob _ . ( ) 기호들을 막아 다른 테이블로의 이동을 할 수 없도록 해놨다. 위 코드를 분석해보면 SQL 쿼리는 select id from p.. 2017. 9. 7.