![](https://img-blog.csdnimg.cn/direct/d4b7e9b1355d41ddb4d99f5d0930d577.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
网络安全web测试sql注入
文章平均质量分 53
常规渗透测试
愿听风成曲
社会主义搬砖侠
展开
-
14.SQL注入-进行服务器远程控制
一句话木马是一种短小而精悍的木马客户端,隐蔽性好,切功能强大释1:eval(string),支持PHP4\5\7,将后面的string作为PHP代码运行。原创 2024-07-08 07:45:00 · 371 阅读 · 0 评论 -
13.SQL注入-宽字节
MySQL是用的PHP语言,然后PHP有addslashes()等函数,这类函数会自动过滤 ’ ‘’ null 等这些敏感字符,将它们转义成’ ‘’ \null;然后宽字节字符集比如GBK它会自动把两个字节的字符识别为一个汉字,所以我们在单引号前面加一个%df,从而使单引号逃逸。宽字节的注入条件有两个:1.数据库编码设置成GB系列这里说的GB系列编码,不是指PHP页面的编码,而是连接数据库使用的编码。原创 2024-07-07 07:45:00 · 502 阅读 · 0 评论 -
12.SQL注入-盲注基于时间(base on time)
输入payload语句进行睡5秒中,通过开发这工具查看时间,如图所示,会在5秒钟后在执行,因此存在基于时间的盲注。做一个if语句进行判断,如果数据库的第一个字符等于a,则睡5秒钟在执行。boolian的盲注类型还有返回信息的状态,但是基于时间的盲注就什么都没有返回信息。如图所示,不等于a,返回时间上则为2秒(本地环境问题存在2秒延迟,正常0秒)如图所示,正确存在时间上的延迟7秒,说明p猜对了数据库名称的第一个字符。因数据库第一个字符为p,我就直接公布正确的答案,就不一个一个测试;原创 2024-07-06 07:00:00 · 267 阅读 · 0 评论 -
11.SQL注入-盲注基于(base on boolian)
输入kobe直接返回正确的信息,输入kobe’ and 1=1#也返回了正确的信息,证明and被后台执行了。根据payload语句执行成功,则可以判断出数据库第一个字符ascii=112,转换成字符为p。输入的内容是否正确,返回的信息比较少,只有两种返回结果:正确或者是用户名不存在。通过上面的图例子,我们可以利用左右都为真,则判断数据库名称的字符,多次进行测试。现在则继续测试第二个字符,我这里是多次测试得出来得结果105转换字符为:i。同样也可以进行爆出该数据库下的表名的字符,数字为104转成字符为h。原创 2024-07-05 07:00:00 · 251 阅读 · 0 评论 -
10.SQL注入-http header利用案例
首先通过登录http头界面,如图所示:登录的信息会被记录到数据库中去,同时使用bp进行抓包分析将抓包的数据发送repeater里面进行调试通过useragent进行注入将useragent对应的数据信息删除掉,输入单引号测试被后台执行报错sql语法错误,证明此处存在漏洞因useragent信息会被写入数据库中去,所以使用insert注入思路进行测试暴库语句如图所示,数据库被爆出。原创 2024-07-04 07:00:00 · 138 阅读 · 0 评论 -
9.SQL注入-delete案例演示
然后点击发送,可以查看到数据库pikachu被爆出。接下来操作和insert、update一样的,就不演示了。将payload语句输入到id=后面,然后选中payload语句进行格式转换。将该数据发送到repeater进行编辑输入payload语句进行测试。在delete界面点击删除,同时使用bp工具进行抓包查看数据。通过抓包查看,id=65为数字型的。原创 2024-07-03 09:30:00 · 186 阅读 · 0 评论 -
8.SQL注入-基于insert,update利用案例
sql语句正常插入表中的数据例如插入小强数据,如图所示:采用or这个运算符,构造闭合语句‘xiaoqinag’ or __ or 中后面的那个or后的单引号是为了闭合掉语句后面本身带有的单引号。而前面第一个or后是我们要填的注入语句。这里还是用后台报错的方法来构造payload,且有必要提到的是,这里我们还用的了updatexmal()基于insert语句下的报错:暴库payload语句。原创 2024-07-03 07:00:00 · 784 阅读 · 0 评论 -
7.2.SQL注入-基于函数报错extractvalue(),floor()
爆出数据库版本。原创 2024-07-02 09:30:00 · 205 阅读 · 0 评论 -
7.1.SQL注入-基于函数报错的方式来利用updatexml()
函数concat()意思为:括号里面的字符串进行拼接,为了将报错显示全面。limit 0,1 意思为:第一个数据为第几个,第二数字为显示多少行。第二个参数,意思就是定位到xml文档中指定的某一个位置的更新。第三个参数,意思就是将文档中指定某一个位置的内容进行替换。基于函数报错的payload语句:updatexml()获取密码md5值,可以解析出来密码为:123456。可以使用limit一次一次进行获取表名。第一个参数,意思就是xml文档的名称。获取表名之后,在获取列名,思路一致。原创 2024-07-02 07:00:00 · 528 阅读 · 0 评论 -
6.SQL注入-通过information_schema拿下数据库案例
通过被爆出来的库名pikachu,还有字段username,password,进行编写payload语句进行测试。数据库information_schema数据库中存在很多重要信息,包括所有的表名,库名,列名等等。发现将pikachu库中所有的表都已经暴漏出来,发现有一个users表比较敏感信息,可以利用。根据上面的sql语句进行编写payload进行测试是否可以查出来对应的高级权限的用户和密码。我进行随意输入一个单引号,进行查询,返回报错sql语句错误等,证明输入的信息被后台执行了。原创 2024-07-01 08:45:00 · 349 阅读 · 0 评论 -
5.SQL注入-通过union进行获取数据-字符型
通过sql语句order by 以列的形式排序,没有第三列,所以order by 3 报错。发现输入的被执行了,知识不存在的用户,但是可以判断为是2列,证明有两个字段。在后台和前端查询是一样的出现数据,也就是有两个字段:id和email。注意:上面已经判断出是2个字段,所以union后面也只能是2个字段。在pikachu上查询kobe,出现了两个字段id和email。输入payload语句会出现当前的数据库的名称和数据的版本信息。如果union前后字段不相同则报错,如下图。如图所示表中没有3列。原创 2024-07-01 07:45:00 · 287 阅读 · 0 评论 -
4.SQL注入-xx型
将payload语句输入查询框,所有用户全部展现出来。输入kobe查询,同样展示id和邮箱。xx型的sql语句查询方式,猜测。根据上图构造payload语句为。原创 2024-06-30 09:30:00 · 140 阅读 · 0 评论 -
3.SQL注入-搜索型
将payload输入搜索框会发现所有用户信息已出现。通过以上猜测进行构造payload语句。通过上图搜索可以猜测的sql语句为。输入k字段进行搜索发现出用户信息。后台代理逻辑,通过前端传入参数。原创 2024-06-30 07:00:00 · 174 阅读 · 0 评论 -
2.SQL注入-字符型
通过前端输入条件,传参到后端数据库的配置文件逻辑。在数据库中查询对应的kobe,根据上图对应上。编写payload语句,添加or 1=1#如图所示,所有用户信息展示出来。输入kobe查询出现id和邮箱。在搜索框中输入语句为。原创 2024-06-29 09:00:00 · 120 阅读 · 0 评论 -
1.SQL注入-数字型
然后我们进入pikachu的数据路里面进行操作一下,or 1=1这个语句可以显示出所有的用户信息;查询1的时候发现url后面的链接没有传入1的参数。验证为post请求方式,仅显示用户和邮箱。还是pikachu上的1进行查询抓包,如图,然后进行发送到Repeater进行调试。这是pikachu后台配置文件通过浏览器页面访问输入1进行post请求传参的逻辑;输入payload之后发现所有用户和邮箱都全部展示。接下来我们使用bp工具抓包来实现一下字符型漏洞。原创 2024-06-29 07:00:00 · 337 阅读 · 0 评论