【代码审计】0开始学习之bluecms①

admin 2021年6月14日11:30:58评论126 views字数 817阅读2分43秒阅读模式

我使用的环境php5.4.45+apache


重装覆盖漏洞

我们先走正常流程搭建好网站如下

由于很多网站会存在重装覆盖的漏洞,所以我们先访问下install文件

可以发现这里确实可以重新安装该网站,漏洞+1(这里还和代审无关)

【代码审计】0开始学习之bluecms①


SQL注入

这里,我们需要用上seay源代码审计工具

别看这里好像漏洞很多,大多其实是误报,需要我们人工核实
这里我们先学习挖掘select类型的SQL漏洞吧
首先先挑选/ad_js.php文件

$ad = $db->getone("SELECT * FROM ".table('ad')." WHERE ad_id =".$ad_id);

先追踪一下getgone函数,这一看就是自定义函数
【代码审计】0开始学习之bluecms①

【代码审计】0开始学习之bluecms①

这里没什么大碍,就是执行sql语句的,让我们回到刚才的文件

【代码审计】0开始学习之bluecms①

可以发现数据是从这里利用GET方式进入的,当参数不为空时,trim函数会去除字符串两侧的空格,所以对我们没什么影响

【代码审计】0开始学习之bluecms①

这里可以发现文件上方引用了另外一个文件

【代码审计】0开始学习之bluecms①

可以发现,当没有开启魔术引号的时候就进入下面这处对数据的输入进行一定地处理


定位deep_addslashes进入文件

【代码审计】0开始学习之bluecms①

addslashes() 函数返回在预定义字符之前添加反斜杠的字符串

【代码审计】0开始学习之bluecms①


最后我们在该处存在注入的地方看到

【代码审计】0开始学习之bluecms①

所以说,我们需要在源代码里查看输出


Okey,我们来复现下这块漏洞,联合查询这些反复的操作就不多叙述了
由于这里存在魔术引号,当我们爆表以及接下来操作的时候难免会用到引号,但是这里又存在魔术引号无法在该处绕过,所以说我们可以通过把表名转化为16进制即可如下:

/ad_js.php?ad_id=-1%20union%20select%201,2,3,4,5,6,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=0x626c7565

【代码审计】0开始学习之bluecms①


未完待续


本文始发于微信公众号(F12sec):【代码审计】0开始学习之bluecms①

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年6月14日11:30:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【代码审计】0开始学习之bluecms①http://cn-sec.com/archives/397597.html

发表评论

匿名网友 填写信息