web安全 学习心得

SQL注入篇(3)

sql注入:(无回显情况及其他)

1,报错注入:

基于报错的SQL盲注-报错回显 【强制性报错】

用到两个函数

<1> updatexml()    #从目标xml中更改包含所查询值的字符串
用法 select 回显1,回显2,回显3 
select 1,2,updatexml (xml_document,XPath_string,new_value);

第一个参数:XML_document 是String格式,为XML文档对象的名称,文中为DOC

第二个参数:XPath_string(Xpath格式字符串)

第三个参数:new_value,String格式,替换查找到的符合条件的数据

xml文档对象名称随便写【三个参数有两个保持一致 ;原理就是xpath格式报错 】

用法【2】
 or updatexml(xml_document,XPath_string,new_value) or'

<2> extractvalue()   #从目标xml中返回包含所查询的字符串
用法: select 回显1,回显2,回显3
select 回显1,回显2,extractvalue(XML_document,XPath)
第一个参数:XML_document 是String格式,为XML文档对象的名称,文中为DOC

第二个参数:XPath_String (Xpath格式字符串) 

xml文档对象名称随便写
格式:union select extractvalue(1,concat(0x7e,(select version()))),2%23

%23 起注释作用   0x7e:~     concat:连接 

时间盲注【没有回显 也没有报错 可用】
   sleep(秒数)    休眠几秒
   if()   可以写三目程序     sleep(if(database()='security',3,2))       #如果database=security  则只有运行3秒0 否则运行2秒
      select * from users where id=3 and sleep(4);
      select * from users where id=1 and sleep(if(database()='security',3,2));

2.  布尔盲注:

根据页面返回的状态来判断

1. MID函数
mid(database(),1,1)
截取database()字符串的第一位并只截取一位
截取字段    mid(a,b,c) 从b开始截取a字符串的c位

2. length函数
id=1 and length(database())=8

#length 长度   如果数据库名称字数=8 则显示正确显示,或者有显示

3. left函数
left(database(),1)=‘随便一个自己猜的字母’
left 猜解字母  1为第几个字母    如果该页面所在是数据库名称第一个字母=‘’ 则有显示

4. ascii函数
ASCII(mid(database(),1,1))>/</=二分法分解出某个数
ASCII表有255个 二分法就是从中间分数然后逐步缩小直至确定某个数

5. substr函数【从1开始】
substrate(database(),1,1)
截取database()字符串的第一位并只截取一位

6. limit 0,1
从0开始的第一位

3.  加密注入:

通过burp得知传输内容加密 则你需要将自己手动传输的参数和表单传输的参数一起加密。
加密方式有: base64 哈希 等!

4.  堆叠注入:

一堆SQL语句堆在一起一起运行
union 是后面只能是select查询语句
分号;表结束SQL语句 
条件要求:数据库为MySQL  其他的不行

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值