一、 启动环境

1.双击运行桌面phpstudy.exe软件



2.点击启动按钮,启动服务器环境

二、代码审计

1.双击启动桌面Seay源代码审计系统软件



2.因为74CMS3.0源代码编辑使用GBK编辑,所以首先需要先将编码改成GBK



3.点击新建项目按钮,弹出对画框中选择(C:\phpStudy\WWW\74cms),点击确定

漏洞分析

1.点击展开左侧link目录,弹出的下拉列表中双击add_link.php文件,右侧页面可以看到相关代码。

elseif ($act=="save")
{
if ($_CFG['app_link']<>"1")
{
showmsg('已停止自助申请链接,请联系网站管理员!',1);
}
else
{
$setsqlarr['link_name']=trim($_POST['link_name'])?trim($_POST['link_name']):showmsg('您没有填写标题!',1);
$setsqlarr['link_url']=trim($_POST['link_url'])?trim($_POST['link_url']):showmsg('您没有填写链接地址!',1);
$setsqlarr['link_logo']=trim($_POST['link_logo']);
$setsqlarr['app_notes']=trim($_POST['app_notes']);
$setsqlarr['alias']=trim($_POST['alias']);
$setsqlarr['display']=2;
$setsqlarr['type_id']=2;
$link[0]['text'] = "返回网站首页";
$link[0]['href'] =$_CFG['site_dir'];
!inserttable(table('link'),$setsqlarr)?showmsg("添加失败!",0):showmsg("添加成功,请等待管理员审核!",2,$link);
}
}

2.程序首先检测网站是否开启自助申请链接,如果没有,将阻止用户申请。 紧接着网站将获取到链接名字、URL、logo、说明等赋值到setsqlarr数组,最后将数据插入到数据库中。 文件开始程序依然包含了公共文件/include/common.inc.php,程序内部使用了str_tags去除HTML和PHP标签,所以,凡是带有尖括号的一律会被过滤掉。

3. 后台/admin/admin_link.php负责管理申请的友情链接

if($act == 'list')
{
check_permissions($_SESSION['admin_purview'],"link_show");
require_once(QISHI_ROOT_PATH.'include/page.class.php');
$oederbysql=" order BY l.show_order DESC";
$key=isset($_GET['key'])?trim($_GET['key']):"";
$key_type=isset($_GET['key_type'])?intval($_GET['key_type']):"";
if ($key && $key_type>0)
{ if ($key_type===1)$wheresql=" WHERE l.link_name like '%{$key}%'";
elseif ($key_type===2)$wheresql=" WHERE l.link_url like '%{$key}%'";
}
else
{
!empty($_GET['alias'])? $wheresqlarr['l.alias']=trim($_GET['alias']):'';
!empty($_GET['type_id'])? $wheresqlarr['l.type_id']=intval($_GET['type_id']):'';
if (is_array($wheresqlarr)) $wheresql=wheresql($wheresqlarr);
}
$joinsql=" LEFT JOIN ".table('link_category')." AS c ON l.alias=c.c_alias ";
$total_sql="SELECT COUNT(*) AS num FROM ".table('link')." AS l ".$joinsql.$wheresql;
$page = new page(array('total'=>get_total($total_sql), 'perpage'=>$perpage));
$currenpage=$page->nowindex;
$offset=($currenpage-1)*$perpage;
$link = get_links($offset, $perpage,$joinsql.$wheresql.$oederbysql);
$smarty->assign('link',$link);
$smarty->assign('page',$page->show(3));
$smarty->assign('upfiles_dir',$upfiles_dir);
$smarty->assign('get_link_category',get_link_category());
$smarty->display('link/admin_link.htm');
}

4.程序首先检查管理员权限,然后获取前端页面传过来进行拼接SQL语句,最后进入到get_links函数内部进行数据库查询查询

function get_links($offset, $perpage, $get_sql= '')
{
global $db;
$row_arr = array();
$limit=" LIMIT ".$offset.','.$perpage;
$result = $db->query("SELECT l.*,c.categoryname FROM ".table('link')." AS l ".$get_sql.$limit);
while($row = $db->fetch_array($result))
{
$row_arr[] = $row;
}
return $row_arr;
}

5.查询完成以后将获得结果传入到/link/admin_link.htm文件中

<tr>
<td class="admin_list admin_list_first">
<input name="id[]" type="checkbox" value="{#$list.link_id#}" />
<a href="{#$list.link_url#}" target="_blank" {#if $list.display<>"1"#}style="color:#CCCCCC"{#/if#}>{#$list.link_name#}</a>
{#if $list.Notes<>""#}
<img src="data:images/comment_alert.gif" border="0" class="vtip" title="{#$list.Notes#}" />
{#/if#}
{#if $list.link_logo<>""#}
<span style="color:#FF6600" title="<img src={#$list.link_logo#} border=0/>" class="vtip">[logo]</span>
{#/if#}
{#if $list.display<>"1"#}
<span style="color: #999999">[不显示]</span>
{#/if#}
</td>

6.模板文件中显示logo直接使用数据库传入过来的link_logo参数,并将作为img图像 src的参数,并且src参数用户可控,所以构成存储型XSS。

漏洞利用

1.首先点击网站底部的申请友情连接



2.弹出的页面中,输入如下参数,然后点击提交



其中Logo地址处为真正的攻击payload,x为了使img图像报错,然后调用onerror参数弹出对话框。 3.登录后台,依次点击广告->友情链接,将鼠标移动到LOGO位置,页面立刻弹出对话框

74CMS 3.0 存储型XSS漏洞的更多相关文章

  1. 74CMS3.0储存型XSS漏洞代码审计

    发现一个总结了乌云以前代码审计案例的宝藏网站:https://php.mengsec.com/ 希望自己能成为那个认真复现和学习前辈们思路的那个人,然后准备慢慢开始审计一些新的小型cms了 骑士cms ...

  2. Java Web开发 - 持久型/存储型XSS漏洞

    Java Web开发 - 持久型/存储型XSS漏洞 1.什么是XSS漏洞攻击? XSS是跨站脚本攻击(Cross Site Scripting)的简称,之所以叫XSS而不是CSS相比大家都能明白了吧, ...

  3. 【代码审计】eduaskcms_v1.0.7前台存储型XSS漏洞分析

      0x00 环境准备 eduaskcms官网:https://www.eduaskcms.xin 网站源码版本:eduaskcms-1.0.7 程序源码下载:https://www.eduaskcm ...

  4. 【代码审计】iZhanCMS_v2.1 前台存储型XSS漏洞分析

      0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...

  5. 【代码审计】大米CMS_V5.5.3 后台多处存储型XSS漏洞分析

      0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...

  6. Phpwind v9.0 存储型xss跨站漏洞

    漏洞版本: Phpwind v9.0 漏洞描述: Phpwind专注于中小网站应用的整合和价值的发掘,我们认为,以社区为网站的基础,可以提供丰富的应用,满足人们获取信息.交流.娱乐.消费等生活需求.获 ...

  7. 存储型XSS靶场作业

    首先进入靶场:http://59.63.200.79:8082/index.php xss平台使用:xss8c 发现CMS版本号,搜索是否此版本号存在可利用漏洞: 找到存储型xss漏洞,在xss平台生 ...

  8. DVWA之Stored XSS(存储型XSS)

    目录 Low Medium High Impossible Low 源代码: <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $m ...

  9. 【代码审计】QYKCMS_v4.3.2 前台存储型XSS跨站脚本漏洞分析

      0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...

随机推荐

  1. LPL Ban/Pick 选人阶段的遮罩效果是如何实现的?

    最近 S11 LPL 春季赛开赛,在看比赛的过程中,我发现新赛季的 Ban/Pick 选人阶段,出现了一种新的,有意思的遮罩效果,如下图所示: 当然,它是一个动态的效果,当选人的过程中,会有一种呼吸的 ...

  2. 基于反熔丝FPGA、QSPI FLASH的高可靠程序存储、启动控制系统

    1      涉及术语解释 1.1     三模冗余 三模冗余系统简称TMR(Triple Modular Redundancy),是最常用的一种容错设计技术.三个模块同时执行相同的操作,以多数相同的 ...

  3. Spring Boot-开启第一步

    Spring Boot开发的目的是为了简化Spring应用的开发,使用Spring Boot可以零配置开启一个Spring应用.这得益于Spring Boot中的自动配置组件,如果开发者觉得默认的配置 ...

  4. SQL注入蠕虫分析//未完待续

    蠕虫代码: DECLARE @S VARCHAR(4000);SET @S=CAST(0x4445434C415245204054205641524348415228323535292C4043205 ...

  5. leetcode算法1.两数之和

    哈喽!大家好,我是[学无止境小奇],一位热爱分享各种技术的博主! [学无止境小奇]的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过. [学无止 ...

  6. 封装及其作用Java

    封装 该露的露,该藏的藏 我们程序设计要求"高内聚,低耦合".高内聚就是类的内部数据操作细节自己完成,不允许外部干涉:低耦合:仅暴漏少量的方法给外部使用 ​ 封装(数据的隐藏): ...

  7. 从.net开发做到云原生运维(二)——.net core生态

    1. 新的开始从.net 6.0开始 .net 6.0作为一个长期支持版,具有里程碑的意义.从.net5.0将.net framework和.net core合并以后,在.net5.0的功能上再次完善 ...

  8. 分布式缓存NCache使用

    NCache作为缓存优点币Redis有优势,但是收费的所以选用的不多吧.下面简单实操一下: 首先官网下载组件NCache Download Center (alachisoft.com),这里选择企业 ...

  9. 如何用excel搭建数据模型,销售数据管理软件

    ​过完了国庆和中秋的双节后,就进入了2020年的倒计时了,相信许多小伙伴还没反应过来,怎么感觉时间过的这么快,唰的一下一年就过去了四分之三.对于销售人员来说,更是无比的压力山大,对于他们来说,Q4季度 ...

  10. 超强可视化图表工具:Smartbi!!

    要制作出专业的可视化图表,还是需要一定的学习成本的,并且需要大量的时间.并且即使是制作出来,配色也是一大难题,对于一般人而言,通常会通过两种方式实现可视化大屏的制作: 1.写代码 大部分人可能会选择大 ...