代码审计 | 如何获取CVE漏洞编号

admin 2024年10月10日17:33:42评论50 views字数 1568阅读5分13秒阅读模式

扫码领资料

获网安教程

代码审计 | 如何获取CVE漏洞编号

代码审计 | 如何获取CVE漏洞编号

本文由掌控安全学院 -  yusi 投稿

Track安全社区投稿~  

千元稿费!还有保底奖励~(https://bbs.zkaq.cn)

前言:最近在网上找了套源码,想着练一下审计,也不能说有多深入,但是学习一下审计流程,源码下载在文章末尾

环境搭建

直接用 phpstudy 搭建就行了,选择一下路径和端口,然后新建一个数据库,把目录 Database 下的 sql 文件导进去,再简单配置一下 /rental/db_connect.php 文件以连接数据库

代码审计 | 如何获取CVE漏洞编号

img

访问端口页面如下

代码审计 | 如何获取CVE漏洞编号

img

在 Username and Password.txt 文件给出了默认账号密码,登录后可以简单看看后台功能。

代码审计 | 如何获取CVE漏洞编号

img

工具扫描

既然有源码肯定不会去挨个功能点的进行测试,掏出 seay 自动审计一手

代码审计 | 如何获取CVE漏洞编号

img

看到显示漏洞挺多的,具体存不存在还需要跟进看看,因为有些可控参数是加了过滤或转义的。再用昆仑镜扫描一下

代码审计 | 如何获取CVE漏洞编号

img

也基本上是 sql 注入漏洞,至于变量覆盖一般不太好利用,不是关键时刻不用看。

漏洞分析

sql 注入

上面显示的 sql 注入漏洞最多,就先分析这个,直接跟进到 /rental/admin_class.php 文件。在其登录函数 login() 发现 sql 语句。

代码审计 | 如何获取CVE漏洞编号

img

$username 没有任何过滤,直接就拼接进去了,属于是甩脸上了。由于没有回显查询结果,直接时间盲注就行了。

稍微更改一下代码,测试一下,构造

1' or if((length(database())>1),sleep(5),1)#

看到我们的参数已经拼接进了 sql 语句,

代码审计 | 如何获取CVE漏洞编号

img

回到 bp 发包也能看到盲注成功。

代码审计 | 如何获取CVE漏洞编号

img

类似的 sql 注入漏洞还有很多,就在 /rental/admin_class.php 文件中,一抓一大把,如:

代码审计 | 如何获取CVE漏洞编号

img

代码审计 | 如何获取CVE漏洞编号

img

都是没有对参数进行过滤处理造成的 sql 注入。但是这些函数对应的都是后台的功能点了,在实际应用中没太大用处,还是登录处的 sql 注入危害最大。

文件上传

继续审计,发现存在存在文件上传点,有三处都有下面的相同代码逻辑。

代码审计 | 如何获取CVE漏洞编号

img

会先上传生成个临时文件,然后利用函数 move_uploaded_file 来把文件移到目录 assets/uploads/,看到对文件后缀和内容都没有过滤,然后文件名中的时间戳可以根据时间范围爆破出来的。

但是在后台功能点找了半天也没发现文件上传的点,应该是函数默认的参数里根本就没有它,那么直接自己构造,这里就拿 signup() 函数来测试

代码审计 | 如何获取CVE漏洞编号

img

构造好后发包,发现报错

代码审计 | 如何获取CVE漏洞编号

img

显示无法移动文件,调试看看原因

代码审计 | 如何获取CVE漏洞编号

img

看到临时文件在 C:Windows 目录下,用记事本查看内容显示报错:“文件包含病毒或潜在的垃圾文件”,到这里其实我大概已经知道原因了,又是系统自带的安全保护在作怪,将其关掉。然后再次上传,成功上传

代码审计 | 如何获取CVE漏洞编号

img

访问木马即可 getshell。

代码审计 | 如何获取CVE漏洞编号

img

本来以为凭借 sql 注入 + 文件上传就能直接拿下该系统 shell,但是离谱的来了,发现该系统根本就没有鉴权,不用登录直接构造 poc 就可以实现上传。

总结

只是一次简单的审计经历,站点也是漏洞百出,甚至鉴权都没有。不过拿来熟悉熟悉审计流程还是不错的,最后去 cve 平台上搜索发现还有没交的洞,这洞都贴脸上了,于是顺手获取了几个 cve。

代码审计 | 如何获取CVE漏洞编号

img

代码审计 | 如何获取CVE漏洞编号

img

源码地址:https://www.sourcecodester.com/download-code?nid=17375&title=Best+house+rental+management+system+project+in+php+

最后祝大家都能获得自己的 cve

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

代码审计 | 如何获取CVE漏洞编号

原文始发于微信公众号(掌控安全EDU):代码审计 | 如何获取CVE漏洞编号

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月10日17:33:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   代码审计 | 如何获取CVE漏洞编号https://cn-sec.com/archives/3248827.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息