公众号:泷羽Sec---风宵
对OSCP感兴趣的可以找我交流喔~
目录
利用Burp Suite进行抓包操作,定位登录接口所在代码文件。
RapidCMS
一款基于 Blazor 框架的内容管理系统(CMS)构建工具
影响版本
RapdiCMS(1.3.1版本)
下载地址
登录存在未授权访问
利用Burp Suite进行抓包操作,定位登录接口所在代码文件。
采用POST方法发送请求,具体在runlogin.php文件中,涉及到两个参数的传递。
查看runlogin.php文件
读取sql.json文件
可以直接通过GET读取sql.json文件
访问:http://xxx.com/install/sql-config/sql.json
文件上传1
登录后台管理系统成功后,针对“基本设置”模块中的图标上传功能,进行了代码审查,相关文件是admin/uploadicon.php。
在观察到未实施充分校验和限制的情况下,我们可以使用Burp Suite对数据包进行拦截并修改,进而通过更改上传文件的后缀名来实现限制的绕过。
文件上传2
新增文章admin/upload. php
和上面一样,使用burp抓包即可
sql注入
新增分类cate-add-run. php
<?php include("../check.php"); header ( "Content-type:text/html;charset=utf-8" ); $json_string = file_get_contents('../../install/sql-config/sql.json'); $dataxxx = json_decode($json_string, true); $link=mysqli_connect($dataxxx['server'],$dataxxx['dbusername'],$dataxxx['dbpassword']); if($link) { $select=mysqli_select_db($link,$dataxxx['dbname']); if($select) { $str='INSERT INTO `rapidcmscategory`(`id`, `name`, `pic`, `num`) VALUES ("'.$_POST["id"].'","'.rawurlencode($_POST["name"]).'","'.$_POST["pic"].'",'.$_POST["num"].')'; $result=mysqli_query($link,$str); sendalert("增加成功!"); } } ?>
在处理POST请求时,提取了四个核心参数:(id、name、pic、num),并形成了SQL插入命令,将这些信息存入rapidcmscategory表中。
然而,系统中并未对这些由POST请求传递的参数执行必要的验证和过滤,这样的情况等同于直接向rapidcmscategory表插入数据。
获取数据库
整个CMS中存在很多的SQL注入漏洞
SQL注入修复方式
$stmt = $link->prepare('INSERT INTO `rapidcmscategory`(`id`, `name`, `pic`, `num`) VALUES (?, ?, ?, ?)'); $stmt->bind_param('sssi', $_POST["id"], rawurlencode($_POST["name"]), $_POST["pic"], $_POST["num"]); $stmt->execute();
整个CMS中存在很多的SQL注入漏洞,比如。
登录逻辑绕过
一旦password11匹配正确,即可成功登录,此时可以利用SQL注入来绕过密码验证,将password通过md5、sha1、md5三种方式加密后的结果应用。
第一步:
对password=admin进行md5、sha1、md5加密,得到加密后的字符串:83C72CE1CAB133635EF751487234A947。
第二步:
通过SQL注入方法,向数据库中注入加密后的密码
select password from `rapidcmsadmin` Where username = 'admin' union select '83C72CE1CAB133635EF751487234A947' -- a;
第三步:
利用burp进行抓包,将password字段设置为admin,并在password)))后进行匹配,使之与数据库中的密码相对应。
好啦,本文的内容就到这了,希望你能喜欢~~