存储型XSS——前端输入恶意的JavaScript*, 如果客户端与服务器端没有过滤或转移代码直接入库被永久保存每次访问这个留言板服务器都会从数据库中读取这段留言*、拼接在HTML源码中返回给用户用户浏览器在渲染页面执行了脚本。Security level: low #1查看代码只用了stripslashes去除斜杠对于核心HTML标签没有转义和过滤#2 寻找输入点name 或者message输入框#3 构造Payload触发弹窗测试1 在Name中输入123, 在Message框里输入凭证 得到Payload;Sign Guestbook提交浏览器执行改脚本会蹦出会话带有PHPSESSID弹窗测试2通过Burp Suite抓包可以看清楚底层逻辑在Message中提交; 在POST请求包底部有原始的传输数据浏览器进行了URL编码clear guestbook 进入下一级Security level: Medium #1查看代码对于Message框后端增加了函数strip_tags()用于剥去字符串中HTML、XML以及PHP标签、addslashes()用于返回在预定一字符之前添加反斜杠的字符串、htmlspecialchars()把预定一的字符转换成HTML实体对于Name框仅用了str_replace() 只过滤小写#2 右击Name输入框选择Inspect, 手动修改maxlength, 从10改到100#3 构造Payload测试1在name框中输入alert(‘Medium’), 因为str_replace()所以用大小写混合的标签;测试2在name框中输入 img src1 onerroralert( ‘Medium_XSS’ )测试2 Sign Guestbook提交后如图Security level: High #1 查看代码,防御升级为正则表达式$name preg_replace( …),所以完全抛弃script标签采用HTML其他标签的事件属性如图片加载错误时间触发onerror, 以实现无标签弹窗#2 修改maxlength, 从10改到100#3 在name框中输入img srcx onerroralert( ‘document.cookie’ );
DVWA XSS_stored
发布时间:2026/7/10 18:07:25
存储型XSS——前端输入恶意的JavaScript*, 如果客户端与服务器端没有过滤或转移代码直接入库被永久保存每次访问这个留言板服务器都会从数据库中读取这段留言*、拼接在HTML源码中返回给用户用户浏览器在渲染页面执行了脚本。Security level: low #1查看代码只用了stripslashes去除斜杠对于核心HTML标签没有转义和过滤#2 寻找输入点name 或者message输入框#3 构造Payload触发弹窗测试1 在Name中输入123, 在Message框里输入凭证 得到Payload;Sign Guestbook提交浏览器执行改脚本会蹦出会话带有PHPSESSID弹窗测试2通过Burp Suite抓包可以看清楚底层逻辑在Message中提交; 在POST请求包底部有原始的传输数据浏览器进行了URL编码clear guestbook 进入下一级Security level: Medium #1查看代码对于Message框后端增加了函数strip_tags()用于剥去字符串中HTML、XML以及PHP标签、addslashes()用于返回在预定一字符之前添加反斜杠的字符串、htmlspecialchars()把预定一的字符转换成HTML实体对于Name框仅用了str_replace() 只过滤小写#2 右击Name输入框选择Inspect, 手动修改maxlength, 从10改到100#3 构造Payload测试1在name框中输入alert(‘Medium’), 因为str_replace()所以用大小写混合的标签;测试2在name框中输入 img src1 onerroralert( ‘Medium_XSS’ )测试2 Sign Guestbook提交后如图Security level: High #1 查看代码,防御升级为正则表达式$name preg_replace( …),所以完全抛弃script标签采用HTML其他标签的事件属性如图片加载错误时间触发onerror, 以实现无标签弹窗#2 修改maxlength, 从10改到100#3 在name框中输入img srcx onerroralert( ‘document.cookie’ );