截断漏洞

例题 CG-CTF
点进去是
在这里插入图片描述
阅读代码,ereg( ,)(正则表达式匹配)
strpos( ,)(寻找里面的字符)
第一个if()告诉我们如果不是输入1-9以内的数就执行 输出“必须输入数字才行”
然后else if 如果nctf 有#biubiubiu 输出flag
否则输出“骚年,继续努力吧啊”
第一个方法
因为 ereg( )strpos( ) 中如果时数组的话返回NULL
get请求传入nctf[]=#biubiubiu
在这里插入图片描述
IF ereg返回NULL!=False 不通过
else if(NULL!=False) 成立输出flag
第二个方法
利用%00截断
传入参数

?nctf=1%00%23biubiubiu在这里插入图片描述

首先第一个数必须要是1-9之间,其次后面跟%00截断后面的内容,然后下一行读取里面的%23biubiubiu满足输出flag
因为#在url里面是特殊字符所以要用%23代替

关于%00截断

在这里插入图片描述
不读取后面的字符,详情观看博客
测试文件1.txt如下

<?php
    echo 'fireXXX';
?>

php5.2.x版本解析1.php时,会将1.txt\000.jpg解释为1.txt
url截断漏洞
PHP的00截断是5.2.x版本的一个漏洞,当用户输入的url参数包含%00经过浏览器自动转码后截断后面字符。
例如url输入的文件名1.txt%00.jpg经过url转码后会变为1.txt\000.jpg,测试文件1.php如下

<?php
    include "1.txt\000.jpg";
?>

测试文件1.txt如下

<?php
    echo 'fireXXX';
?>

php5.2.x版本解析1.php时,会将1.txt\000.jpg解释为1.txt
网页端要求我们上传,jpg,gif,png后缀的文件,上传之后
在这里插入图片描述
要求上传php的这之后我们用到00截断,先抓包
在这里插入图片描述
在uploads/后加上1.php+
在这里插入图片描述
点击hex找到1.php+所对应的位置
在这里插入图片描述
‘+’对应的是2b,改成00阻断就好了。
然后再发送一遍在这里插入图片描述
第二种方法和第一种同种原理 ,第一种是在url上使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值