bugku 文件包含,备份是个好习惯,源代码

伪协议

伪协议常常用于文件包含漏洞之中。在php中能够造成文件包含的函数有include、require、include_once、require_once、highlight_file、show_source、file_get_contents、fopen、file、readfile

web安全——伪协议_h0l10w的博客-CSDN博客

bukug  文件包含

点开click me?no

被过滤了,直接构造伪协议,      试了明文读取不行

试一下编码读取

base64解码

bugku 备份是个好习惯

只有一串字符,各种解码解不出来,试一下扫后台 扫出来了这些东西

不知道为什么我没有扫出来/index.php.bak 这个文件,后来直接试了在url

打开后看到

 从代码中可以看到,原先输出为空的一串密文,是因为key1和key2没有赋值

$str = str_replace('key','',$str);

这条语句又限制了key的输入,str_replace函数会对key进行过滤,但可以采取双写绕过的形式,即 kkeyey1,kkeyey2

1,md5()函数无法处理数组,如果传入的为数组,会返回NULL,所以两个数组经过加密后得到的都是NULL,也就是相等的。

.因为md5()函数加密不能处理数组,则key1和key2的返回值为空,即可获得flag

2,利用==比较漏洞

如果两个字符经MD5加密后的值为 0exxxxx形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,还是零,都是相等的。

下列的字符串的MD5值都是0e开头的:

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

?kkeyey1[]=s878926199a&kekeyy2[]=s155964671a

MD5函数绕过

代码片段_MD5绕过

bugku 源代码

提示看源代码,在源代码中看到不认识的函数去查一下

还是解一下p1和p2

var p1 = 'function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("67d709b2b';
var p2 = 'aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").οnsubmit=checkSubmit;

源码中有提示

eval(unescape(p1) + unescape('%35%34%61%61%32' + p2));

%35%34%61%61%32 解码得:54aa2

将 67d709b2b54aa2aa648cf6e87a7114f1 提交到Submit 得到flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值