基于函数报错的注入

Sql-Inject漏洞手动测试-基于函数报错的信息获取
1.常用的报错函数updatexml()、extractvalue()、floor()
2.基于函数报错的信息获取(sellect/insert/update/delete)
基于报错的信息获取:
技巧思路:
一、在MYSQL中使用一些指定的函数来制造报错,从而从报错信息中获取设定的信息。
二、select/insert/update/delete都可以使用报错来获取信息
背景条件:
后台没有屏蔽数据库报错信息,在语法发生错误时会输出在前端。
基于报错的信息获取-三个常用的用来报错的函数
1.updatexml():函数是MYSQL对XML文档数据进行查询和修改的XPATH函数。
2.extractvalue():函数也是MYSQL对XML文档数据进行查询的XPATH函数。
3.floor():MYSQL中用来取整的函数。
updatexml()函数作用:改变(查找并替换)XML文档中符合条件的节点的值。
语法:UPDATEXML(xml_document,XPathstring,new_value)
第一个参数:fiedname是String格式,为表中字段名
第二个参数:XPathstring(Xpath格式的字符串)
第三个参数:new_value,String格式,替换查找找到符合条件的
Xpath定位必须是有效的,否则则会发生错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于报错注入的攻击方式是在构造SQL语句时,通过故意引发数据库报错来推测出数据库中的信息。攻击者可以通过构造SQL语句,故意引发数据库的报错信息,从而获取有关数据库的信息。 例如,假设有一个搜索页面,攻击者可以在搜索框中输入如下语句: ``` ' union select 1,2,3,4,group_concat(table_name) from information_schema.tables where table_schema=database()# ``` 上述语句中的union select语句会将攻击者自己构造的查询结果与原始查询结果合并返回。在这里,攻击者查询了当前数据库中所有的表名,并使用group_concat()函数将表名拼接成一个字符串返回。如果查询成功,则返回拼接好的字符串,否则会返回报错信息。攻击者可以根据报错信息来推测出数据库中的表名。 另外,攻击者还可以通过查询列名、数据等信息来获取更多有关数据库的信息。例如,可以使用如下语句查询当前数据库中users表中所有的列名和数据: ``` ' union select 1,2,3,4,group_concat(column_name),group_concat(username,password) from information_schema.columns c,users u where c.table_name='users'# ``` 上述语句使用了information_schema.columns表来查询users表的列名,并使用group_concat()函数将列名和数据拼接成一个字符串返回。攻击者可以根据返回的字符串来推测出数据库中的列名和数据。 需要注意的是,SQL注入是一种非常危险的攻击手段,可以导致严重的安全问题。开发者在开发过程中应该尽可能地防止SQL注入攻击,避免给攻击者留下可乘之机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值