WEB安全

如何挖掘XSS漏洞

字号+ 作者:sqler 来源:转载 2016-11-24 20:19 我要评论( )

0x01前言 一天五篇文章之第一篇(答应坏蛋的) 0x02什么是XSS漏洞 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混......

0x01  前言   
     一天五篇文章之第一篇(答应坏蛋的)


0x02  什么是XSS漏洞   
     跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。


0x03  XSS漏洞的危害
     1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
     2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
     3、盗窃企业重要的具有商业价值的资料
     4、非法转账
     5、强制发送电子邮件
     6、网站挂马
     7、控制受害者机器向其它网站发起攻击


0x04  实战案例   
     iwebshop3.7.15071500版本。又兴趣的可以下载看一下
    /htdocs/iwebshop/controllers/seller.php
    goods_update是添加一个商品到数据库中,update()中过滤很少
   
[AppleScript] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
public function goods_update()
        {
                $id       = IFilter::act(IReq::get('id'),'int');
                $callback = IFilter::act(IReq::get('callback'),'url');
                $callback = strpos($callback,'seller/goods_list') === false ? '' : $callback;
 
                //检查表单提交状态
                if(!$_POST)
                {
                        die('请确认表单提交正确');
                }
 
                //初始化商品数据
                unset($_POST['id']);
                unset($_POST['callback']);
 
                $goodsObject = new goods_class($this->seller['seller_id']);
                $goodsObject->update($id,$_POST);
 
                $callback ? $this->redirect($callback) : $this->redirect("goods_list");
        }

后台读取数据的时候,是直接从数据库中读取。

[AppleScript] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
function goods_list()
        {
                //搜索条件
                $search = IFilter::act(IReq::get('search'),'strict');
                $page   = IReq::get('page') ? IFilter::act(IReq::get('page'),'int') : 1;
 
                //条件筛选处理
                list($join,$where) = goods_class::getSearchCondition($search);
 
                //拼接sql
                $goodsHandle = new IQuery('goods as go');
                $goodsHandle->order    = "go.sort asc,go.id desc";
                $goodsHandle->distinct = "go.id";
                $goodsHandle->fields   = "go.*,seller.true_name";
                $goodsHandle->page     = $page;
                $goodsHandle->where    = $where;
                $goodsHandle->join     = $join;
 
                $this->search      = $search;
                $this->goodsHandle = $goodsHandle;
                $this->redirect("goods_list");
        }


     首先,商家添加一个商品,标题写
     
     后台访问时,弹框
     
     代码已成功在源码中。
     


0x05  修复建议   
     对参数进行过滤。
     PHP:htmlentities()或是htmlspecialchars()
     Python:cgi.escape()
     ASP:Server.HTMLEncode()
     ASP.NET:Server.HtmlEncode() 或功能更强的 Microsoft Anti-Cross Site Scripting Library
     Java:xssprotect(Open Source Library)
     Node.js:node-validator

本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Web/226.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • EXIF Viewer XSS漏洞的来龙去脉[转载]

    EXIF Viewer XSS漏洞的来龙去脉[转载]

    2017-06-27 21:26

  • T00LS帖子正文XSS[转载]

    T00LS帖子正文XSS[转载]

    2017-06-27 21:03

  • XSS钓鱼模拟实战【附赠源码】

    XSS钓鱼模拟实战【附赠源码】

    2017-01-12 21:30

  • 新手指南:DVWA-1.9全级别教程(完结篇,附实例)之XSS

    新手指南:DVWA-1.9全级别教程(完结篇,附实例)之XSS

    2016-12-27 09:41

网友点评
暂时未开启评论功能~