際際滷

際際滷Share a Scribd company logo
T畛i 動u h坦a t畉n c担ng
Blind Sql Injection -
qu叩 nhanh v qu叩
nguy hi畛m

gamma95[at]gmail[dot]com
N畛i dung
0x01: 5 ph炭t cho ph畉n ch叩n nh畉t
0x02: Tri畛n l達m truy畛n tranh
0x03: 10 i畛m y畉u 畛ng d畛ng web theo x畉p h畉ng OWASP
0x04: 25 l畛i ph畉n m畛m nguy hi畛m nh畉t theo x畉p h畉ng c畛a SANS
0x05: Blind sql injection l g狸?
0x06: Lm sao 畛 ki畛m th畛 blind sql injection?
0x07: Lm sao 畛 t畉n d畛ng blind sql injection?
0x08: T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit
0x09: T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit d畛a vo k畉t qu畉 達
               動畛c 叩nh ch畛 m畛c
0X0A: T畛i 動u blind sql injection theo ch畛 m畛c th畛i gian ngh畛
0X0B: T畛i 動u blind sql injection theo d畛 li畛u n辿n
0X0C: H畛i v c湛ng tr畉 l畛i
5 ph炭t cho ph畉n ch叩n nh畉t



 $ whoami >/dev/null
Tri畛n l達m truy畛n tranh
畛ng 畉t t棚n 畛a tr畉 :

T竪o'); DROP TABLE students;--
10 i畛m y畉u 畛ng d畛ng web theo x畉p h畉ng
               OWASP
25 l畛i ph畉n m畛m nguy hi畛m nh畉t theo x畉p
             h畉ng c畛a SANS
Lm sao 畛 ki畛m th畛 blind sql injection?
. Attacker ch竪n c但u truy v畉n:
      where True
      where False
VD:

      vul.php?id = 1 and 1=1

      vul.php?id = 1 and 1=2


. 畛ng d畛ng kh担ng tr畉 v畛 th担ng tin c坦 th畛 th畉y 動畛c
  t畛 CSDL hay t畛 nh畛ng th担ng i畛p l畛i
. Attacker kh担ng th畉y d畛 li畛u 動畛c tr鱈ch xu畉t t畛
  CSDL
Lm sao 畛 ki畛m th畛 blind sql injection?
                   (2)

. Attacker 沿鞄但稼 t鱈ch k畉t qu畉 ph畉n h畛i t畛 ph畉n h畛i tr畉
  l畛i 炭ng v ph畉n h畛i tr畉 l畛i sai
. Kh叩c bi畛t v畛 checksum
. Kh叩c bi畛t v畛 c畉u tr炭c HTML
. Kh叩c bi畛t v畛 t畛 kh坦a
. Kh叩c bi畛t v畛 hnh vi
       (VD: th畛i gian tr畉 ph畉n h畛i)
Lm sao 畛 t畉n d畛ng blind sql
         injection?
T狸m ki畉m nh畛 沿鞄但稼
T畉n c担ng blind sql injection b畉ng ph動董ng
          ph叩p t狸m ki畉m nh畛 沿鞄但稼
. N畉u c坦 s畛 ph畉n h畛i kh叩c bi畛t:
       Attacker c坦 th畛 tr鱈ch xu畉t m畛i th担ng tin t畛
         CSDL

. VD:
vul.php?id=1 and mid(user(),1,1)>'a' and mid(user(),1,1) < 'z'
#n畉u 炭ng, chia 担i v truy v畉n ti畉p

vul.php?id=1 and mid(user(),1,1) < 'm'
                              ....
                              ....
T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit




  Attacker bi畉t 動畛c bit cao nh畉t l 0
T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit
                    (2)




.                   1
    V bit th畛 2 l  
01??????
.   K畉t qu畉 k畉 ti畉p c坦 th畛 l:
010 = 2
011 = 3
T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit
                    (3)




. V畛i k畛 thu畉t d畛ch bit tr棚n, ch畛 c畉n 7 truy v畉n, s畉 o叩n
炭ng ch鱈nh x叩c 1 k箪 t畛
T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit d畛a
    vo k畉t qu畉 達 動畛c 叩nh ch畛 m畛c
T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit d畛a
 vo k畉t qu畉 達 動畛c 叩nh ch畛 m畛c (2)
T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit d畛a
  vo k畉t qu畉 達 動畛c 叩nh ch畛 m畛c (3)
. Khi 辿p ki畛u l畉i, ch炭ng ta bi畉t r畉ng
  CAST(b'11' AS DEC) l s畛 3 t動董ng 畛ng
  v畛i 'c' trong danh s叩ch, t畉t c畉 ch畛 t畛n 3
  truy v畉n!

. Danh s叩ch di 45 , BIN(45) = 101101,
  c滴ng ch畛 m畉t 7 truy v畉n cho k箪 t畛 畛 v畛 tr鱈
  cu畛i c湛ng danh s叩ch.
Th畛ng k棚 s畛 truy v畉n cho m畛i ph動董ng ph叩p 達 畛 c畉p
      (VD: table_name= "CHARACTER_SET")
叩nh ch畛 m畛c d畛a vo th畛i gian ngh畛
T畛i 動u blind sql injection theo ch畛 m畛c th畛i
                   gian ngh畛


. Time based blind SQL b畛 chi ph畛i vo t畉n s畛 c叩c
  truy v畉n. M畛i truy v畉n ch畛 x叩c 畛nh duy nh畉t 1 bit




. T畉n s畛 1 truy v畉n / 1 bit s畉 畛 l畉i nhi畛u v畉t
  trong access log. 但y l v畉n 畛 b畉t ti畛n
Indexed time based attack
                        (VD)




.   M畛i truy v畉n s畉 tr畉 v畛 ch鱈nh x叩c 1 k箪 t畛 (kh担ng
                      ph畉i 1 bit).
i畛u ch畛nh th畛i gian ngh畛
. Th畛i gian ngh畛 c坦 th畛 i畛u ch畛nh cho b辿 h董n b畉ng
  c叩ch nh但n ch畛 m畛c v畛i m畛t s畛 b辿 h董n   1

. VD: Th畛i gian ngh畛 動畛c i畛u ch畛nh gi畉m 1/2 so v畛i
  v鱈 d畛 tr動畛c
V畉n 畛 v畛 畛 tr畛 m畉ng
.  t動畛ng xu畉t ph叩t t畛 chuy畛n th畛i gian ngh畛 動畛c t鱈nh t畛
  nh畛ng con s畛 叩nh ch畛 m畛c, n棚n hon ton c坦 th畛 th棚m vo
  nh畛ng k箪 t畛 ch畉c ch畉n kh担ng      xu畉t hi畛n (VD: n, t ...)
. VD: th棚m vo 4   'a' vo 畉u ch畛 m畛c, th畛i gian ngh畛 lu担n l畛n
  h董n 4
T畛i 動u blind sql injection theo
         d畛 li畛u n辿n
C但u chuy畛n chng th叩m t畛 b畛 teo nh畛
T畛i 動u blind sql injection theo d畛 li畛u
                  n辿n
Demo
Tham kh畉o
1. Indexed blind SQL injection
http://seclists.org/fulldisclosure/2011/Dec/71

2. Faster Blind MySQL Injection Using Bit Shifting
http://www.exploit-db.com/papers/17073/

3. Optimized Blind MySQL Injection Data Retrieval
http://websec.ca/blog/view/optimized_blind_sql_injection_data_retrieval

4. SQL injection: Attacks and Defense (SynGress Book)
Tetcon2012 gamma95 blind_sql_injection_optimization
Tetcon2012 gamma95 blind_sql_injection_optimization

More Related Content

Tetcon2012 gamma95 blind_sql_injection_optimization

  • 1. T畛i 動u h坦a t畉n c担ng Blind Sql Injection - qu叩 nhanh v qu叩 nguy hi畛m gamma95[at]gmail[dot]com
  • 2. N畛i dung 0x01: 5 ph炭t cho ph畉n ch叩n nh畉t 0x02: Tri畛n l達m truy畛n tranh 0x03: 10 i畛m y畉u 畛ng d畛ng web theo x畉p h畉ng OWASP 0x04: 25 l畛i ph畉n m畛m nguy hi畛m nh畉t theo x畉p h畉ng c畛a SANS 0x05: Blind sql injection l g狸? 0x06: Lm sao 畛 ki畛m th畛 blind sql injection? 0x07: Lm sao 畛 t畉n d畛ng blind sql injection? 0x08: T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit 0x09: T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit d畛a vo k畉t qu畉 達 動畛c 叩nh ch畛 m畛c 0X0A: T畛i 動u blind sql injection theo ch畛 m畛c th畛i gian ngh畛 0X0B: T畛i 動u blind sql injection theo d畛 li畛u n辿n 0X0C: H畛i v c湛ng tr畉 l畛i
  • 3. 5 ph炭t cho ph畉n ch叩n nh畉t $ whoami >/dev/null
  • 5. 畛ng 畉t t棚n 畛a tr畉 : T竪o'); DROP TABLE students;--
  • 6. 10 i畛m y畉u 畛ng d畛ng web theo x畉p h畉ng OWASP
  • 7. 25 l畛i ph畉n m畛m nguy hi畛m nh畉t theo x畉p h畉ng c畛a SANS
  • 8. Lm sao 畛 ki畛m th畛 blind sql injection? . Attacker ch竪n c但u truy v畉n: where True where False VD: vul.php?id = 1 and 1=1 vul.php?id = 1 and 1=2 . 畛ng d畛ng kh担ng tr畉 v畛 th担ng tin c坦 th畛 th畉y 動畛c t畛 CSDL hay t畛 nh畛ng th担ng i畛p l畛i . Attacker kh担ng th畉y d畛 li畛u 動畛c tr鱈ch xu畉t t畛 CSDL
  • 9. Lm sao 畛 ki畛m th畛 blind sql injection? (2) . Attacker 沿鞄但稼 t鱈ch k畉t qu畉 ph畉n h畛i t畛 ph畉n h畛i tr畉 l畛i 炭ng v ph畉n h畛i tr畉 l畛i sai . Kh叩c bi畛t v畛 checksum . Kh叩c bi畛t v畛 c畉u tr炭c HTML . Kh叩c bi畛t v畛 t畛 kh坦a . Kh叩c bi畛t v畛 hnh vi (VD: th畛i gian tr畉 ph畉n h畛i)
  • 10. Lm sao 畛 t畉n d畛ng blind sql injection?
  • 11. T狸m ki畉m nh畛 沿鞄但稼
  • 12. T畉n c担ng blind sql injection b畉ng ph動董ng ph叩p t狸m ki畉m nh畛 沿鞄但稼 . N畉u c坦 s畛 ph畉n h畛i kh叩c bi畛t: Attacker c坦 th畛 tr鱈ch xu畉t m畛i th担ng tin t畛 CSDL . VD: vul.php?id=1 and mid(user(),1,1)>'a' and mid(user(),1,1) < 'z' #n畉u 炭ng, chia 担i v truy v畉n ti畉p vul.php?id=1 and mid(user(),1,1) < 'm' .... ....
  • 13. T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit Attacker bi畉t 動畛c bit cao nh畉t l 0
  • 14. T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit (2) . 1 V bit th畛 2 l 01?????? . K畉t qu畉 k畉 ti畉p c坦 th畛 l: 010 = 2 011 = 3
  • 15. T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit (3) . V畛i k畛 thu畉t d畛ch bit tr棚n, ch畛 c畉n 7 truy v畉n, s畉 o叩n 炭ng ch鱈nh x叩c 1 k箪 t畛
  • 16. T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit d畛a vo k畉t qu畉 達 動畛c 叩nh ch畛 m畛c
  • 17. T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit d畛a vo k畉t qu畉 達 動畛c 叩nh ch畛 m畛c (2)
  • 18. T畛i 動u b畉ng c叩ch d湛ng ph辿p d畛ch bit d畛a vo k畉t qu畉 達 動畛c 叩nh ch畛 m畛c (3) . Khi 辿p ki畛u l畉i, ch炭ng ta bi畉t r畉ng CAST(b'11' AS DEC) l s畛 3 t動董ng 畛ng v畛i 'c' trong danh s叩ch, t畉t c畉 ch畛 t畛n 3 truy v畉n! . Danh s叩ch di 45 , BIN(45) = 101101, c滴ng ch畛 m畉t 7 truy v畉n cho k箪 t畛 畛 v畛 tr鱈 cu畛i c湛ng danh s叩ch.
  • 19. Th畛ng k棚 s畛 truy v畉n cho m畛i ph動董ng ph叩p 達 畛 c畉p (VD: table_name= "CHARACTER_SET")
  • 20. 叩nh ch畛 m畛c d畛a vo th畛i gian ngh畛
  • 21. T畛i 動u blind sql injection theo ch畛 m畛c th畛i gian ngh畛 . Time based blind SQL b畛 chi ph畛i vo t畉n s畛 c叩c truy v畉n. M畛i truy v畉n ch畛 x叩c 畛nh duy nh畉t 1 bit . T畉n s畛 1 truy v畉n / 1 bit s畉 畛 l畉i nhi畛u v畉t trong access log. 但y l v畉n 畛 b畉t ti畛n
  • 22. Indexed time based attack (VD) . M畛i truy v畉n s畉 tr畉 v畛 ch鱈nh x叩c 1 k箪 t畛 (kh担ng ph畉i 1 bit).
  • 23. i畛u ch畛nh th畛i gian ngh畛 . Th畛i gian ngh畛 c坦 th畛 i畛u ch畛nh cho b辿 h董n b畉ng c叩ch nh但n ch畛 m畛c v畛i m畛t s畛 b辿 h董n 1 . VD: Th畛i gian ngh畛 動畛c i畛u ch畛nh gi畉m 1/2 so v畛i v鱈 d畛 tr動畛c
  • 24. V畉n 畛 v畛 畛 tr畛 m畉ng . t動畛ng xu畉t ph叩t t畛 chuy畛n th畛i gian ngh畛 動畛c t鱈nh t畛 nh畛ng con s畛 叩nh ch畛 m畛c, n棚n hon ton c坦 th畛 th棚m vo nh畛ng k箪 t畛 ch畉c ch畉n kh担ng xu畉t hi畛n (VD: n, t ...) . VD: th棚m vo 4 'a' vo 畉u ch畛 m畛c, th畛i gian ngh畛 lu担n l畛n h董n 4
  • 25. T畛i 動u blind sql injection theo d畛 li畛u n辿n
  • 26. C但u chuy畛n chng th叩m t畛 b畛 teo nh畛
  • 27. T畛i 動u blind sql injection theo d畛 li畛u n辿n
  • 28. Demo
  • 29. Tham kh畉o 1. Indexed blind SQL injection http://seclists.org/fulldisclosure/2011/Dec/71 2. Faster Blind MySQL Injection Using Bit Shifting http://www.exploit-db.com/papers/17073/ 3. Optimized Blind MySQL Injection Data Retrieval http://websec.ca/blog/view/optimized_blind_sql_injection_data_retrieval 4. SQL injection: Attacks and Defense (SynGress Book)