pikachu 4

sql盲注(base on boolian)

表现:没有报错信息;   不管是正确的输入还是错误的输入,都只显示两种情况(我们可以认为是0或者1);    在正确的输入下,输入and 1=1/and 1=2发现可以判断

输入kobe' and 1=1#,输出信息

输入kobe' and 1=2#,不显示报错

 输入一个报错函数:kobe' and extractvalue(0,concat(0x7e,version()))#,不显示报错

输入 kobe' and ascii(substr(database(),1,1))=112#

显示出kobe的信息,说明and后内容为真,所以说我们就可以知道database这个表达式所执行出来的结果里面的第一个字符串的ASCII就是112,翻译过来就是p,这样我们就得到了后台数据库的名称里面的第一个字符

盲注(base on time)

如果说基于真假的盲注在页面上还可以看到0 or 1的回显的话,那么基于时间的盲注完全就啥都看不到了

输入kobe' and sleep(5)#

MySQL中有一个函数sleep(),sleep()会把动作暂停指定的时间之后再去执行

sleep(5)后端会暂停五秒钟再返回数据到前端

用了五千多毫秒,也就是五秒多钟,所以这里把我们输入的sleep(5)执行了,所以这里存在一个基于时间的sql盲注

 基于时间的延迟的payload:

kobe' and if ((substr(database(),1,1))='p',sleep(5),null)#

输入kobe' and if ((substr(database(),1,1))='a',sleep(5),null)#,提交

发现很快就返回了结果,并没有暂停5秒钟,所以意味着第一个字符串不是a

输入kobe' and if ((substr(database(),1,1))='p',sleep(5),null)#,提交

五秒后返回数据,所以if判断的结果就是等于p,我们提交的payload执行了sleep()函数,意味着我们猜中了,依此类推,不停的去尝试

sql宽字节注入

宽字节注入原理:

在数据库中使用了宽字符集(GBK,GB2312等),除了英文都是一个字符占两字节;

MySQL在使用GBK编码的时候,会认为两个字符为一个汉字(ascii>128才能达到汉字范围);

在PHP中使用addslashes函数的时候,会对单引号%27进行转义,在前边加一个反斜杠”\”,变成%5c%27;

可以在前边添加%df,形成%df%5c%27,而数据进入数据库中时前边的%df%5c两字节会被当成一个汉字;

%5c被吃掉了,单引号由此逃逸可以用来闭合语句。

使用PHP函数iconv(‘utf-8’,‘gbk’,$_GET[‘id’]),也可能导致注入产生

修复建议:

(1)使用mysqli_set_charset(GBK)指定字符集

(2)使用mysqli_real_escape_string进行转义

构建payload:1%df' union select 1,2#

单引号因为php中使用addslashes函数,被转义为\',编码后就是%5c%27加上pyload中的%df 后,就是 %df%5c%27 ,然后MySQL在使用GBK编码的时候,会认为两个字符为一个汉字, %df%5c就被解析为一个汉字,%27也就是单引号就成功逃逸了,成功实现闭合,后面就可以通过or 来执行语句了。

RCE

RCE漏洞可以让攻击者直接向后台服务器远程注入操作系统命令或代码,从而控制后台

exe"ping"    (远程系统命令执行)

输入127.0.0.1,提交

输入127.0.0.1 && dir,执行了增加的命令,说明这个地方后端没有做严格的处理,所以攻击者可以直接通过这个入口控制操作系统 

exec"evel"  (远程代码执行漏洞)

随便输入一段字符

输入一段php代码:phpinfo();

被后端执行了,把相关的结果返回到前端了

File Inclusion(文件包含漏洞)

包含函数:通过include()或require()语句,可以将PHP文件的内容插入到另一个PHP文件(在服务器执行它之前)

include和require语句是相同的,除了错误处理方面:

require会生成致命错误并停止脚本

include只生成警告,并且脚本会继续

file inclusion(local)

这个请求传了一个文件名到后台,后台对这个指定的目标文件做对应的操作 

将此文件改成后台的一个固定的配置文件,也可以显示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值