PHP-代码审计项目-BlueCMS-前台盲注

本文最后更新于 2024年10月21日 晚上

前言:俺开始学代码审计了,之前一直在黑盒方面学习,黑盒漏洞挖掘,没有接触过白盒,于是开始学习代码审计。【PHP代码审计项目】系列是一些用来学习练手的CMS的审计笔记,写的不好,但是也是一个记录吧,多年之后再看也是会感慨万千吧哈哈,最后学习完了代码审计我会写一个总结性的文章,还望各位大佬师傅轻喷,欢迎随时指教小弟……

审计环境

  • phpstudy 2018
  • php-5.4.45
  • Apache 2.4.23
  • phpstrom 2018
  • CMS源码:BlueCMS

审计过程

image

  1. 使用正则表达式在phpstrom全局搜索sql语句,找可控变量
1
(update|select|insert|delete|).*?where.*=

image

  1. 跟进代码,看$ad_id是否可控

image

  1. 可以看到,GET方式接收变量,接收时没有任何过滤,继续跟进getone(),看是否有过滤

image

  1. getone()没有过滤,继续跟进query()

image

  1. query()也没有过滤

image

漏洞复现

  1. 那么就很简单了,直接访问,构造sql语句开始注入,加单引号,成功报错

image

  1. 尝试联合注入,但是没有回显位,上sqlmap盲注直接抬走哈哈

image

1
python sqlmap.py -u http://localhost/cms/bluecms/ad_js.php?ad_id=1

image