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

2016-08-04  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读