mfw靶场学习(信息搜集,小知识点和代码审计学习)
2023-3-8 18:21:50 Author: 白安全组(查看原文) 阅读量:17 收藏

今天这个文章我们简单学习一下信息搜集,拓展小知识点和一点代码审计,每天一点点,进步多一点。

基于攻防时间的web测试靶场:

https://adworld.xctf.org.cn/challenges/details?hash=52595c4f-b564-4c87-a2fa-390e2529b5b4_2&task_category_id=3

解题思路,遇到陌生的一个网站,我们首要的是搜集一些信息,我们可以先着手收集一些明面上的信息,比如我们可以扫描一下网站目录。

ps:小知识点

这里通过扫描网站目录我们可以发现有一个/.git的目录,这个目录我们根据经验了解 git目录是程序员合作项目遗留

我们这里可以利用一个工具将其全部下载下来,当然我们也可以通过手动一个个下载下来。

这里我利用工具下载了这里面的源码,然后我们可以进行一小波代码审计

<?phpif (isset($_GET['page'])) {    $page = $_GET['page'];} else {    $page = "home";}$file = "templates/" . $page . ".php";
// I heard '..' is dangerous!assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");// TODO: Make this look niceassert("file_exists('$file')") or die("That file doesn't exist!");?>

首先这里通过page利用get方式传入一个值,这个值需要与page相等,否则赋值home给page

然后我们发现下面的file变量会将我们传递进去的参数加上php后缀放入到目录中

然后我们继续往下读,这里发现使用了assert函数,这里就和我们的一句话木马有点相似了啊。

我们的file变量会被带入到这一句中,那么我们就可以进行一个闭合没用的,插入我们想要执行的函数进去了

assert("strpos('$file', '..') === false")

我们想办法让这里闭合

'.system("cat ./templates/flag.php").'

这样构造之后,让前后闭合,同时可以执行中间的语句

出来之后我们查看网站源码


文章来源: http://mp.weixin.qq.com/s?__biz=MzU4MjYxNTYwNA==&mid=2247486406&idx=1&sn=97a3ac5d3ad456d793616363310d5335&chksm=fdb4dc9dcac3558ba43ab0d512bcf5305e1db76f1ff43dbacb5be826459e9f0723690a0c8476#rd
如有侵权请联系:admin#unsafe.sh