dedecms 网站首页标签,百度 网站 质量度,网站视频超链接怎么做,wordpress cas认证sqli-labs靶场安装以及刷题记录-dockerpikachu靶场-Cross-Site Scripting pikachu靶场的安装刷题记录反射型xss(get)反射型xss(post)存储型xssDOM型xssDOM型xss-xxss盲打xss之过滤xss之htmlspecialcharsxss之href输出xss之js输出 pikachu靶场的安装
刷题记录
反射型xss(get) … sqli-labs靶场安装以及刷题记录-dockerpikachu靶场-Cross-Site Scripting pikachu靶场的安装刷题记录反射型xss(get)反射型xss(post)存储型xssDOM型xssDOM型xss-xxss盲打xss之过滤xss之htmlspecialcharsxss之href输出xss之js输出 pikachu靶场的安装
刷题记录
反射型xss(get) 输入设置了长度限制前端可以直接改 改maxlength值之后输入脚本成功注入
scriptalert(1)/script反射型xss(post) 执行登陆操作登陆成功后有一个输入框可以输入注入语句
存储型xss 同样直接输入注入语句试试
scriptalert(1)/script直接弹窗了看下源码没有任何过滤
DOM型xss 输入aaaaaa点击click me会生成一个链接那可以让它指到刚刚的存储型xss网站来触发弹窗
输入xss_stored.php点击what do you see
DOM型xss-x 输入123444观察源码
输入123444后依次点击所弹出的链接url变化为
//请说出你的伤心往事
/vul/xss/xss_dom_x.php?text123444
//有些费尽心机想要忘记的事情,后来真的就忘掉了
/vul/xss/xss_dom_x.php?text123444#
//就让往事都随风,都随风吧
/vul/xss/123444同样可以输入xss_stored.php使其跳转到存储型xss网站来触发弹窗
xss盲打 输入各种语句都是一样的回显看了提示有后台/xssblind/admin_login.php 打开后台页面会弹窗刚刚提交的注入语句
刚好配置一下文件扫描工具dirsearch下载zip解压直接
python dirsearch.py -u http://ip:9002/vul/xss/xssblind/
conda create --name py39 python3.9//需要3.9及以上版本pythonxss之过滤 输入注入语句试试
scriptalert(1)/script发现回显只剩一个了被继续测试猜一下过滤规则发现大小写混合可以绕过
Scriptalert(1)/Scriptxss之htmlspecialchars
输入注入语句之后点击链接弹窗成功
javascript:alert(1)相关知识点学习 htmlspecialchars() 是一个用于避免 XSS跨站脚本攻击 的 PHP 函数它的主要作用是将 HTML 特殊字符转义为实体编码从而防止恶意用户在输入内容中注入 HTML 或 JavaScript 代码。这是常见的 Web 应用程序中用户输入处理的重要部分尤其是在显示数据时。
基本用法
htmlspecialchars(string $string, int $flags ENT_QUOTES | ENT_SUBSTITUTE, string $encoding UTF-8, bool $double_encode true): string参数说明 $string: 这是需要被转义的字符串。通常是用户输入的数据。 $flags: 这是可选参数用来指定如何处理不同的字符。常见的标志有 ENT_COMPAT默认。将双引号 () 转义为 quot;但不转义单引号 ()。ENT_QUOTES将双引号和单引号都转义。也就是说 会转义为 quot;而 会转义为 #039;。ENT_NOQUOTES不转义任何引号。ENT_HTML401, ENT_XML1, ENT_XHTML, ENT_HTML5这些用于指定 HTML 实体的文档类型HTML 4.01、XML 1、XHTML、HTML5。ENT_SUBSTITUTE当给定的字符集无法表示某些字符时使用替代字符。 $encoding: 这是字符编码的选项。默认值是 UTF-8但可以根据需要设置为其他编码如 ISO-8859-1。 $double_encode: 如果设置为 false则不会对已经被转义的实体再次进行转义。例如如果字符串中已经包含 amp;它不会再次转义为 amp;amp;。默认为 true。
常见例子 基本用法 $input scriptalert(XSS);/script;
echo htmlspecialchars($input, ENT_QUOTES, UTF-8);输出 lt;scriptgt;alert(#039;XSS#039;);lt;/scriptgt;htmlspecialchars() 将 转义为 lt; 转义为 gt;从而避免了用户输入的 JavaScript 被浏览器解释和执行。 处理双引号和单引号 $input He said, Hello!;
echo htmlspecialchars($input, ENT_QUOTES, UTF-8);输出 He said, quot;Hello!quot;ENT_QUOTES 标志确保了双引号被转义为 quot;。 避免重复转义 $input lt;stronggt;Hellolt;/stronggt;;
echo htmlspecialchars($input, ENT_QUOTES, UTF-8, false);输出 lt;stronggt;Hellolt;/stronggt;因为 double_encode 参数被设置为 false所以已经转义的实体不会再次被转义。
使用场景 显示用户输入的数据 当用户提交包含 HTML 或 JavaScript 的数据时直接输出可能会被浏览器解释并执行。这会导致跨站脚本攻击XSS。htmlspecialchars() 可以有效防止这种情况。 $comment scriptalert(hacked);/script;
echo htmlspecialchars($comment, ENT_QUOTES, UTF-8);这样可以确保用户输入的 script 标签不会被执行而是显示为普通文本。 防止 XSS 攻击 用户通过表单提交恶意代码是 XSS 攻击的常见方式。通过使用 htmlspecialchars()可以将这些恶意代码转义为普通文本防止被执行。 与数据库结合使用 当你将用户输入的数据存入数据库并从数据库读取数据进行展示时使用 htmlspecialchars() 来展示用户生成的内容是一个好习惯。它能确保显示的数据是安全的而不是被解析为 HTML 或 JavaScript。
转义的字符列表 转义为 amp; 转义为 lt; 转义为 gt; 转义为 quot; 转义为 #039;仅在 ENT_QUOTES 标志下
注意事项
htmlspecialchars() 主要用于输出 HTML 内容时对用户输入的转义。如果你需要将用户输入作为 HTML 标记比如 div安全地显示htmlspecialchars() 是首选。对于更复杂的场景比如需要处理完整的 HTML 文档或需要转义所有 HTML 实体可以使用 htmlentities() 函数。
总结
htmlspecialchars() 是防止 XSS 攻击的一个重要函数通过将特殊字符转义避免浏览器将其解释为 HTML 或 JavaScript 代码。它在输出用户输入的数据时尤其重要比如在评论区、聊天框等地方。
xss之href输出 javascript:alert(1)//同样可以绕过xss之js输出 输入
javascript:alert(1)
?messagejavascript%3Aalert%281%29submitsubmit//Url中多了message参数 提示 随便输入看一下源码 尝试闭合
1/scriptscriptalert(1)/script没有闭合再试一次
1/scriptscriptalert(1)/script成功弹窗