[bugku]web后面的部分 (疯狂补题qaq) 重点是搞会了 而不是写博客
Posted lx2331
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[bugku]web后面的部分 (疯狂补题qaq) 重点是搞会了 而不是写博客相关的知识,希望对你有一定的参考价值。
索引
(自己查了搞出来和最后看了题解还是不一样的)
当然这些可能都是套路最后就没什么意思了.....
以及在"前女友"后面的东西
[flag在index里]
stristr(不区分大小写): 查找 "world" 在 "Hello world!" 中的第一次出现,并返回字符串的剩余部分:
大概看了一下 是php协议里面有关文件包含的漏洞
学习网站: https://blog.csdn.net/fageweiketang/article/details/80699051 (可是我看不太懂qaq)
构造网址: http://120.24.86.145:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
file=php://filter/read=convert.base64-encode/resource=,.....
(一个read 一个resource
[最后是== 哦 base64编码非常常见了] (发现可以直接用御剑解密qaq)
还真是在index里哇_)()
[备份是个好习惯]
【md5解密网址: https://www.cmd5.com/(看起来还挺厉害)】 地址在这 https://coding.net/u/yihangwang/p/SourceLeakHacker/git
后台备份。我下载到了王一航dalao的工具 但是python里面有不一样 稍微改用了一下print () 就可以扫描后台的备份文件啦
使用的时候先cd切换到目录下面 再运行这个文件就可以啦
记得要后面加上网址哦(http开头的!) (其实完全用脚本就行.... qaq)打开文件 Index.php.bak 注意是bak....
后面的(1)str_replace 用kekeyy双写绕过
(2)
if(md5($key1) == md5($key2) && $key1 !== $key2)
{
echo $flag."取得flag";
}
本身不一样, ,加密了之后一样了,这个是典型的php漏洞哦,构造数组(都返回null给了flag),或者是0e会被认为科学计数法,后面都是0
下列的字符串的MD5值都是0e开头的:
QNKCDZO
240610708
s878926199a
s155964671a
s214587387a
s214587387a
这里参考了https://blog.csdn.net/zpy1998zpy/article/details/80582974
经过试验 http://120.24.86.145:8002/web16/?kekeyy1[]=2&kekeyy2[]=4可行
【注意 】【构造的时候要使用“?” 而且是kekeyy1 kekeyy2】
$str = strstr($_SERVER[‘REQUEST_URI‘], ‘?‘);
$str = substr($str,1);
$str = str_replace(‘key‘,‘‘,$str);
分析三句话: strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL (那么,这个我们的url肯定是?的子串,那么str存的就是哪个地址)
stristr() 函数查找字符串在另一个字符串中第一次出现的位置。(不区分大小写)
substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。 (就是把他们都抽取过来啦)
str_replace() 把字符串 "Hello world!" 中的字符 "world" 替换为 "Shanghai": (把3种的1替换成2) 那么这里就是把str(提取到的一大串)里面的key替换成""咯,那么我们写两个咯kekeyy kkeyey都可以
然后我们知道变量的名字必须是key1 所以这样应对就好啦
<?php echo str_replace("world","Shanghai","Hello world!"); ?>
以上是关于[bugku]web后面的部分 (疯狂补题qaq) 重点是搞会了 而不是写博客的主要内容,如果未能解决你的问题,请参考以下文章