渗透测试sql三连注

admin 2024年4月9日14:35:14评论6 views字数 677阅读2分15秒阅读模式

最近在渗透网站中遇到几个sql注入,简单分享一下挖掘思路。

注入点1:

点击功能点的时候发现该参数,看样子是查询Number of Calls大于10范围的数据。

渗透测试sql三连注

输入>(10+9990),成功查询Number of Calls大于10000的数据,代表着10+9990在后端执行成功

渗透测试sql三连注

输入单引号,报错,有白名单限制,只能输入指定参数。

渗透测试sql三连注

试试>10 and 1=1,正常回显。

渗透测试sql三连注

试试>10 and 1=2,回显的Number of Calls>10的数据明显没有了

渗透测试sql三连注

放到sqlmap跑一下看看,存在布尔注入。

渗透测试sql三连注

注入点2:

正常的回显是这样的

渗透测试sql三连注

加上单引号,报错,根据回显的sql报错可以判断这里模糊查询,使用的是拼接,因为报错语句不是"?"。一般情况下,模糊查询和order by排序处容易出现sql注入。

渗透测试sql三连注

输入'and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1);,成功报错出sql版本,存在报错注入。

渗透测试sql三连注

注入点3

fieldname看起来是字段名,这条数据包应该是根据字段名查询数据库的,盲猜后端sql语句大概是这样的:

select grp_nm from xxx where xxx=xxx;

grp_nm就是我们输入的字段名。

渗透测试sql三连注

乱输入一个字段名参数看看,显示不存在。

渗透测试sql三连注

于是构造sql语句查询表名,成功。

渗透测试sql三连注

输入不存在的表名,报错,显示不存在,存在sql注入漏洞。

渗透测试sql三连注

总结:

sql注入中,大部分为字型注入,字符型注入中,参数点使用单引号就可以发现异常。

数值型注入点可以使用+,-数字的方式进行判断是否执行成功。

原文始发于微信公众号(有恒安全):渗透测试sql三连注

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月9日14:35:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试sql三连注https://cn-sec.com/archives/2641096.html

发表评论

匿名网友 填写信息