美文网首页
WEB安全系列之如何挖掘XSS漏洞

WEB安全系列之如何挖掘XSS漏洞

作者: 池寒 | 来源:发表于2016-08-04 11:55 被阅读409次

    来源:http://bbs.ichunqiu.com/thread-9177-1-1.html?from=ch

    WEB安全系列之如何挖掘XSS漏洞

    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

    21public 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=newgoods_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

    22function 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=newIQuery('goodsasgo');

    $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

    相关文章

      网友评论

          本文标题: WEB安全系列之如何挖掘XSS漏洞

          本文链接:https://www.haomeiwen.com/subject/sipcsttx.html