目录
XSS跨站脚本攻击
记住IP输入的是主机你电脑的IP
.1



http://172.25.254.1/xsslab/level1.php?name= = 快递单上写了指令代码,分拣员(浏览器)会执行这段脚本。
4、最简单代码示例
不加函数(危险,会弹出弹窗)
php
运行
$str = "";
echo $str; // 浏览器执行JS,弹出窗口
使用 htmlspecialchars(安全,只显示文字)
php
运行
$str = "";
echo htmlspecialchars($str);
// 页面原样展示文本:,JS不会运行
5、常用使用场景
- 用户留言、评论、表单数据展示(最常用),防止用户提交恶意 JS 盗取 Cookie、篡改页面;
- 需要页面展示代码片段(展示 HTML 源码);
- 输出内容到 input 标签的 value 属性里,防止引号闭合破坏表单结构。
6、补充易错点
- 只转 HTML 标签符号,不会过滤 SQL 语句,防注入要用 PDO 预处理,别拿这个函数防 SQL 注入;
- 默认只转双引号,单引号需要传入第二个参数 ENT_QUOTES:
php
运行
htmlspecialchars($data, ENT_QUOTES); // 单双引号全部转义(开发标准写法)
- 写入数据库不需要转义,只在从数据库取出、渲染到网页时转义即可。
LEVEL 3
Echo一个,打印一下,看是否会出现实体化;

由于打印出来,导致页面都访问不了了。所以先不打印;
为什么双引尖角会出错”> 为什么尖角符号用不了,因为尖叫号会被处理;这就是之前没有生效的原因;这一关是为了告诉你版本的漏洞,只会对双引号;单引号没问题
这个函数在以前的版本默认只会对引号中的双引号进行实体化,单引就没问题,
用单引号把value闭合掉,尖角号比合不了,那我们就不闭合了,想input中能有什么方式来触发JS代码;

通过我们的JS事件
前端的事件绑定;
比如

点击会触发123
手动写一个闭合, onfocus=“123 ” “
运行可以

输入双引号,被当作是普通的字符了,根本就没有闭合,闭合后面就是黄色的会认为你是一个属性,

用单引号:
‘onfocus=alert(123) 这样会使>前多一个引号
scsc=’随便创造一个属性,用一个多余的单引号产生闭合,搜索成功
关于哪个函数,我们可以找一下,默认的那些属性到底是什么,以及新版本里默认的属性已经没有办法生效了;
美美结束;
LE VEL 4

在这里没有限制

意味着你不能用尖角号了
Str_replace用来进行替换的函数<”检索到的字符”, “替换成什么”,“操作哪个字符串“; 在页面显示的位置有函数;

尝试第三关方法: 前面手动闭合“ onfocus=alert(123) autoFocus ”

成功了;从网址进第5关
先暂停一下,我去补完文件上传的回放,提交完作业后,再回来啃XSS
第5关

加入了一个下划线
HTML标签忽略大小写
Onclick用不了;