开公司先建设网站,免费网站软件哪个好,南京哪家网络公司做网站优化好,c2c商城网站建设公司一、环境的搭建
可以在githb上找靶机包#xff0c;使用小皮面板搭建在自己本机
与此文章类似#xff08;放在www目录下#xff09;
二、XSS漏洞简介
1、什么是xss漏洞
当用户访问被xss注入的网页#xff0c;xss代码就会被提取出来。用户浏览器就会解析这段xss代码使用小皮面板搭建在自己本机
与此文章类似放在www目录下
二、XSS漏洞简介
1、什么是xss漏洞
当用户访问被xss注入的网页xss代码就会被提取出来。用户浏览器就会解析这段xss代码也就是用户被攻击了。
用户最简单的动作就是使用浏览器上网并且浏览器中有js解释器可以解析js然而由于浏览器不具有人格不会判断代码是否具有恶意行为只要代码符合语法规则浏览器就可以解析这段xss代码。
简单来说xss就是通过攻击者精心构造的js代码注入到网页中并且浏览器解释运行了这段恶意的js代码以达到恶意攻击浏览器的效果。
xss的攻击对象是用户浏览器属于被动攻击因此xss攻击涉及到三个角色
攻击者用户浏览器服务器
当然不要以为xss属于客户端攻击受害者是用户就会以为跟自己的网站、服务器安全就没有关系网站的管理员也是用户之一知识相对普通用户权限更高。 实现xss攻击需要具备的两个条件
需要向Web页面注入精心构造的恶意代码对用户的输入没有做果过滤恶意代码能被浏览器成功执行
2、XSS漏洞的类型
xss漏洞的位置通常在于Web应用程序的输入验证或者输出过滤不严格的地方
类型
存储型XSSStored XSS攻击者将恶意脚本存储在服务器上当其他用户访问这些恶意脚本的网页时就会触发XSS漏洞反射型XSSReflected XSS恶意脚本作为URL参数发送给服务器服务器将恶意脚本插入到返回的页面中用户访问该页面就会执行该脚本 DOM-based XSS攻击不涉及服务器端而是通过修改页面的DOM结构来实现攻击通常通过修改客户端脚本中的DOM元素来触发漏洞。 三、开始闯关
在此之前补充三个弹窗函数
alert()
confirm()
prompt()
反射型XSS
1、level1
语句插入 从源码可以看到后端是get接收参数并且没有过滤 那么我们直接在参数的后面加上script标签
?nametestscriptalert(1)/script
结果 2、level2
和第一关差不多按刚才的输入以此看下情况 可以看到我们的输入被原米原样输出没有弹出警告框
看下后端源代码我们的参数会经过这个过滤函数
htmlspecialchars()会将 ( 符号)、 (双引号)、 (单引号)、 (小于)、 (大于)等符号转换成HTML实体编码。
那么在h2标签中我们无法进行注入但可以看到下面的input标签还有一个输出点 在这里我们只需要绕过双引号和闭合尖括号就可以实现 效果
testscriptalert(0)/script 第二种方法鼠标点击事件onclock
也是对input标签进行操作闭合前一个单引号在后面加上点击事件的属性
testonclickalert(1) 点击一下 3、level3
先试着用上一关的闭合单双引号试试 这时候我们使用点击事件来进行注入先将单引号闭合
testonclickalert(1) 点击查看效果 4、level4
我们在使用上一关的方法直接使用利用属性看能不能过 很明显可以直接过 看下源码看考察的点是什么 他在考查看我们input的闭合会将尖括号替换为空 5、level5
我们直接在试一下上一关的方法 可以看到我们的onclick被过滤替换了 我们看源码都替换了哪些 可以看到我们是不能再使用script标签了带on的事件关键字也不能用了
我们不妨直接将input前面的标签闭合掉使用a标签在href后直接使用javascript伪协议
1a hrefjavascript:alert(1)1/a 6、level6
直接看源码可以看到将我们上一关用的href也过滤掉了 在html的标签中浏览器在解析过程中会忽略大小写的而我们可以看到上面都是过滤小写那我们不妨可以试试大小写绕过当然在javascript内部是严格区分大小写的
1 OnCLickalert(1) 7、level7
我们可以看到这关是将关键词替换为空进行过滤那么我们可以进行双写实现绕过 1oonnclickalert(1) 8、level8
此处添加友情链接那么不就可以用我们a标签里href的javascript伪协议了吗 但可惜的是被过滤掉了 那我们直接使用编码就行 #106;#97;#118;#97;#115;#99;#114;#105;#112;#116;#58;#97;#108;#101;#114;#116;#40;#49;#41; 9、level9 查看源码可以看到过滤了我们很多关键字并且必须需要加上http://才可以 那我们针对这些过滤使用实体编码来绕过 #x6a;#x61;#x76;#x61;#x73;#x63;#x72;#x69;#x70;#x74;#x3a;#x61;#x6c;#x65;#x72;#x74;#x28;#x27;http://;#x27;#x29;
很明显我们添加上了我们想要的东西