axublogcms1.0.6|代码审计
这周的审计任务,两天前的任务呀~拖延症呀~
这次审计一个博客----auxblogcms1.0.6,网上也有所记载,我下面会做个总结。
axublog是一款php个人博客系统,小巧强大的PHP+MySQL博客系统程序,全站静态生成html页面,努力成为最优秀国产博客系统!
环境搭建
审计CMS,首先环境搭建。
1,虚拟机/本机win7 32/64位,用wamserver或者phpstudy搭建环境。
2,auxblogcms1.0.6源码(已分享链接)放到WWW目录下面
3,安装,访问( http://127.0.0.1/auxblogcms1.0.6/ )。一路选择下一步,直到设置页面,创建数据库......安装完成。
php-5.2.17+apache axublog正常运行
php-5.3.29-nts+apache axublog正常运行
php-5.4.45+apache axublog无法运行出错
php-5.4.45-nts+apache axublog正常运行
安装过程如下,简单说一下。
把分享的压缩包放到WWW目录下,然后进行解压。然后直接打开连接(http://127.0.0.1/axublog1.0.6install/)开始自动解压安装。


点击同意,开始安装。
输入数据库账号密码(可以选择新建个数据库axublog,不新建也可以,输入数据库的名称即可),点击进行下一步进行网站简单的设置
可以看到安装成功,请牢记您的管理员账户:orange , 密码orange,进入后台管理博客。

代码审计
SQL注入漏洞
首先进行黑盒测试了一下,可getshell,发现后台登录页面是有注入的。输入' or 1=1#,密码随意输入就好,成功登录。
这个时候可以拿出注入神器sqlmap进行黑盒测试。
用burpsuite抓包,扔到sqlmap里面进行注入。
可以成功注入,boolean-based blind,可以注入出来数据库等信息。这个时候试下getshell。执行sqlmap的--os-shell
选择php,然后选择2自定义路径(前提知道路径)输入:D:\wamp\www\nging\axublog1.0.6install\ad
成功getshell,生成了sqlmap的马,得到了shell,因为权限很高,可以执行系统命令。







上面是黑盒测试的细节,下面分析一下代码

上面的图片可以看到,登录的用户user通过post提交,首先接收到$user=$_POST["user"];,接收POST传过来的账号密码数据,但是后面发现没有过滤,$chk变量简单的进行了拼接直接带入查询,从而造成SQL注入漏洞。
$tab=$tabhead."adusers";
$chk=" where adnaa='".$user."' and adpss='".$psw."' ";
mysql_select_db($tab);
$sql = mysql_query("select * from ".$tab.$chk);
if(!$sql){$jieguo="<div id=redmsg>(数据库查询失败!)</div>";}else{
$num=mysql_num_rows($sql);
对于传的参数与数据库进行交互的时候需要进行严格过滤,避免出现SQL注入漏洞的产生。
XSS漏洞
xss漏洞在前台/go/index.php。查看下代码,可以看到代码很少,

get参数u,然后strtolower($u),strtolower() 函数把字符串转换为小写。
然后$u='http://'.str_replace('http://','',$u);,这里把$u传过来的http://先给替换掉空,然后再进行拼接。然后就没了,,,只是把$u传过来的字符串转换成小写,直接echo给location.href语句了,所以这里很明显是存在XSS漏洞的,因此可以构造语句进而触发xss。输入:</script><script>alert(/orange/)</script><" ,发现成功xss。

源码分享(链接: https://pan.baidu.com/s/1pLr7w6Z 密码: r326)
本文链接(http://www.cnblogs.com/Oran9e/p/7846987.html),转载请注明!
axublogcms1.0.6|代码审计的更多相关文章
- auxblogcms1.0.6|代码审计
这周的审计任务,两天前的任务呀~拖延症呀~ 这次审计一个博客----auxblogcms1.0.6,网上也有所记载,我下面会做个总结. axublog是一款php个人博客系统,小巧强大的PHP+MyS ...
- xdcms_3.0.1 | 代码审计
这周的审计任务,这次审计 xdcms . 下面就开始审计之旅. ...
- 熊海cms v1.0 完全代码审计
很久以前写的,写这个东西更多的是为了说明我自己的一个思路,即按照程序功能点进行代码审计, 这样经过一段时间训练,熟悉了某种功能的正确和错误实现方法,遇到类似的代码就可以很快看出是否有问题了 --- 0 ...
- 米酷CMS 7.0.4代码审计
工具:seay源代码审计系统 源代码:网上很好找,这里就懒得贴上了,找不到的话可以给我留言 后面一段时间会深入学习安全开发,代码审计,内网渗透和免杀,快快成长. 审这个系统是因为在先知上看到一篇审它老 ...
- axublogcms1.1.0 Getshell
axublogcms1.1.0 Getshell 代码执行漏洞 现在最新版是1.1.0 今天重新审计了下 axublogcms1.0.6 ,发现一处计较鸡肋的漏洞,因为并不是只有1.0.6版本存在 ...
- ref:web security最新学习资料收集
ref:https://chybeta.github.io/2017/08/19/Web-Security-Learning/ ref:https://github.com/CHYbeta/Web-S ...
- Web-Security-Learning
Web Security sql注入 MySql MySQL False 注入及技巧总结 MySQL 注入攻击与防御 sql注入学习总结 SQL注入防御与绕过的几种姿势 MySQL偏门技巧 mysql ...
- 机器学习算法之K近邻算法
0x00 概述 K近邻算法是机器学习中非常重要的分类算法.可利用K近邻基于不同的特征提取方式来检测异常操作,比如使用K近邻检测Rootkit,使用K近邻检测webshell等. 0x01 原理 ...
- ZAM 3D 制作简单的3D字幕 流程(二)
原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...
随机推荐
- MongoDB高可用集群搭建(主从、分片、路由、安全验证)
目录 一.环境准备 1.部署图 2.模块介绍 3.服务器准备 二.环境变量 1.准备三台集群 2.安装解压 3.配置环境变量 三.集群搭建 1.新建配置目录 2.修改配置文件 3.分发其他节点 4.批 ...
- 每天进步一点点-Java IO操作-Java Serializable(对象序列化)的理解和总结
往硬盘文件里写数据 序列化:序列化是将对象转换为容易传输的格式的过程.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象.在另一端,反序列化将从该流重 ...
- Centos7解决中文乱码问题
查看当前文字编码,发现都是en_US.UTF-8,也就是说还不能完美支持中文编码,如果是zh_CN.UTF-8,那就说明能够比较完美支持中文编码了(我猜的) [root@biaopei ~]# loc ...
- oracle单词
OEM Blackouts n. 黑朦:灯火管制(blackout的复数)Projection n. 投射:规划:突出:发射:推测premium adj. 高价的:优质的 ############## ...
- day 27 网络通信协议 tup udp 下的socket
1.osi七层模型 通信流程 socket(抽象层): 结合上图来看,socket在哪一层呢,我们继续看下图 socket在内的五层通讯流程: 2.TCP/UDP的区别: TCP是以数据流的形式传输, ...
- activiti 委派和转办的区别
委派 委派:是将任务节点分给其他人处理,等其他人处理好之后,委派任务会自动回到委派人的任务中 将hr的任务进行委派: taskService.delegateTask(taskId, userId); ...
- node nightmare 网页自动化测试 sample
安装nightmare 编写1.js 运行 node 1.js var Nightmare = require('nightmare');var nightmare = Nightmare({ sho ...
- MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号;一般,表名与字段名都使用反引号。
MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号:一般,表名与字段名都使用反引号.
- java集合与包装类
一.集合概述 1 为什么需要使用集合? 引入案例:存储每天产生的新闻. 是要解决数组的局限性(定长),由于数组定长,可能会导致内存浪费或者内存不够. 需要一种技术:能够根据数据量而动态伸缩内存空间一种 ...
- 一些常用的排序算法(C版)
1. 直接插入排序(稳定排序) 简单的说就是将序列分为有序序列和无序序列.每一趟排序都是将无序序列的第一个元素插入有序序列中.R[1… i-1] <- R[i…n] , 每次取R[i]插入到R[ ...