XSS进阶三

实验来源:合天网安实验室

实例七、和实例六好像木有区别

      关键代码:

分析:htmlentities函数把字符转换为 HTML 实体(具体如下)。

显示结果 描述 实体名称 实体编号
  空格    
< 小于号 < <
> 大于号 > >
& 和号 & &
" 引号 " "
' 撇号  ' (IE不支持) '
¢ ¢
£ £ £
¥ 日圆 ¥ ¥
欧元
§ 小节 § §
© 版权 © ©
® 注册商标 ® ®
商标
× 乘号 × ×
÷ 除号 ÷ ÷
举个简单的例子吧,见下图(要查看源代码哦),多动手真的挺重要的,很多时候就是懒

XSS进阶三_第1张图片

我们看一下表格,单引号是没被转换的,那个撇号好像单引号,测试一下你就知道单引号没转换,而且关键源代码中用了单引号,实验设计师绝对是故意的,实例六是双引号的那把实例六的代码改为单引号就可以了,看下图,源代码中的

XSS进阶三_第2张图片

根据实例七的代码提示,下面哪个语句能成功:  【单选题】  题目已完成,2 

【A】直接输入alert(1) 【B】输入alert(1)// 【C】输入alert(1);// 【D】输入a';alert($a);$a=' A:肯定不行啦,alert(1)被当做字符串了;B,C:前面‘没闭合,B还没分号,后面的注释没问题

实例八、有时候你要跳出你的思维

      关键代码:


分析:$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。$_SERVER['PHP_SELF']就是当前执行脚本的文件名,如下:(更详细的信息请看:http://php.net/reserved.variables.server

XSS进阶三_第3张图片

那么这里我们也要用到闭合双引号啦,表单的话有个onsubmit事件

先在地址栏这样输入,回车后看一下源代码,form里面的属性被改了吧XSS进阶三_第4张图片

然后在按一下提交不就触发onsubmit事件了吗

XSS进阶三_第5张图片

任务二

根据实例八的代码提示,下面哪种方式能成功:  【单选题】  题目已完成,2 

【A】直接在输入框输入alert(1) 【B】直接在输入框输入javascript:alert(1) 【C】在地址栏输入/"οnsubmit=javascript:alert(1)%20name="a 【D】在地址栏输入/"οnfοcus=javascript:alert(1)%20name="a A,B:肯定是不行,直接放在双引号里里面了,完全发挥不了任何作用 C,D:唯一的不同是事件属性不同,其中%20是 空格的html编码,onsubmit可以了,onfocus无法触发 XSS进阶三_第6张图片

实例九、将xss进行到底

      关键代码:


分析:location是JavaScript管理地址栏的内置对象,比如location.href用来管理页面的URL,用location.href=url就可以直接将页面重定向URL,而location.hash则可以用来获取或设置页面的标签值。比如http://domain/#admin的location.hash="#admin",substring() 方法用于提取字符串中介于两个指定下标之间的字符。他有两个参数,分别是始末位置,末位置可省略(那默认就是字符串的最后咯),那么location.hash.substring(1)的意思是首先获取#后面的内容(不包括#,简单来说就是去掉#),然后完完全全写在网页上,注意不是写在script标签里的 然后截取#后面的内容,所以我们的代码可以下载#后面了

XSS进阶三_第7张图片

XSS进阶三_第8张图片

XSS进阶三_第9张图片

任务三

根据实例九的代码提示,下面哪种方式能成功:  【单选题】  题目已完成,2 

【A】# 【B】#alert(1) 【C】#javascript:alert(1) 【D】###alert(1) A:经过上面的测试可以的啦 B,C的话是直接将alert(1)或 javascript:alert(1)戒指写在网页上,没有script标签就没卵用了 D的话连两个#都写上网页上了,更加不行

你可能感兴趣的:(信息安全,合天网安实验室,xss)