Web
LOS - gremlin
secretjuju
2020. 5. 2. 21:25
위 php코드로 보았을때 해당 페이지에 get요청으로 id와 pw를 받아 query문에 집어넣은 후 받은 결과값의 키가 id인 부분이 있면 문제가 풀리는 것 같다.
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); // do not try to attack another table, database!
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
이 코드로 몇개의 문자들이 query에 들어가는것을 막으려 하는데
_ , prob , . , () 들이 있는 것 같다.
위 같은 패턴들이 들어가지 않게 쿼리문을
select id from prob_gremlin where id='aaa' and pw='bbb' or 1='1'
처럼 만들어 주면
id = aaa and pw ='bbb' 이므로 쿼리가 참이된다.
따라서 아래와 같이 get파라미터를 넣어주면 문제가 풀린다.
최근 system보안을 공부하다가 웹해킹을 처음공부할때 문제가 떠올라 올리게 되었다.