代码审计 === 由于需要开始试了试php的审计,确实能审出一些小问题。但是想深入搞一搞一定要有开发功底,最基本的架构和框架要懂。 xdebug+chrome+phpstorm用起来是最顺手的 bootcms出现了一个原始报错,2018年10月22日 zzzms的后台getshell,2018年11月4日 5ucms的代码注入,wdlcms没什么用的代码注入,2019年2月11日 有成果再来更新 ----------------------2018年11月4日------------------- 更新一个zzzcms的两个漏洞复现 sql注入 注入点: 原因是因为get参数被拼接到了sql语句中,跟踪一下变量,看参数是怎么被插入的 程序入口文件中的这两行是关键,打上断点,跟进函数 getlocation函数中获得了路径及参数,query变量的值如图所示 跟进checklocation函数,p和q是从query取出来的about和22,即为get参数 在checklocation中,globals中添加了一对键值对sid=>22 此时location变量值为about,即为网站中的一个栏目 接着跟进ParseGlobal函数 其中G函数是用来获取globals中的值 跟进,发现值22在db_cond_to_sqladd中直接被拼接,之后被执行 后台管理万能密码 原因在login.php第19行 其实是有做过滤的,跟进getform 过滤函数是txt_html,继续跟进 找到原因:并没有过滤单引号, --------------------------2019年2月11日------------------------------------- 更新:5ucms的代码注入,wdlcms没什么用的代码注入 wdlcms代码注入 网站后台的管理应该与服务器管理相隔离,但此cms可将网站后台修改的内容直接添加到php源码中而非.sql或.cache文件中,导致了代码注入从而可以getshell。 修改后台网站配置信息: 这里修改手机版域名这个键值,burpsuite抓包修改请求,令该值等于test%0a%0aphpinfo();/* %0a可可以直接在代码中生成换行符,/*将之后内容注释掉 注入后的代码: 访问url /Runtime/Temp/95a1fe934b68ebfee8468bf0bc4f0000.php 代码执行成功,表示此处可以任意插入代码。需要知道随机的临时文件名字才能执行,没什么利用价值。 5ucms的代码注入 网站后台的管理应该与服务器管理相隔离,但此cms可将网站后台修改的内容直接添加到php源码中而非数据库或缓存文件中,导致了代码注入从而可以获得服务器权限。 后台系统配置栏的信息全部存储在php源码中:/Apps/Common/Conf/setting.php 跟踪setting.php的更新过程: /Apps/Common/Conf/function.php中的refreshdata函数没有做任何过滤操作,导致了代码注入。 2、漏洞利用 登录后台管理账户后,在系统配置栏最后一项进行如下修改: 在setting.php中添加数组元素值,同时闭合数组,注释掉之后的代码。因为源码对输入内容没有做任何过滤,只有部分字符进行了html实体编码,可以使用单引号、括号等符号对代码进行闭合、写注释等操作。 访问/Apps/Common/Conf/setting.php拿到webshell。 ------------------------------------------------------------------------------------
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up