xss靶场练习level 1-10

  • level 1

1.搭建靶场后打开第一题

xss靶场练习level 1-10_第1张图片

2.点击图片,页面跳转后提示“payload长度为:4”,观察url 存在传参    ?name=test     ,且字符长度为4

xss靶场练习level 1-10_第2张图片

3.查看网页源码,发现第一个点击图片跳转页面存在用户名提交,且未进行任何过滤,猜测存在xssxss靶场练习level 1-10_第3张图片4.修改name参数,发生弹窗,证明存在反射型xss

xss靶场练习level 1-10_第4张图片

  • level 2----闭合标签

1.打开第二题

xss靶场练习level 1-10_第5张图片

2.有输入框,尝试使用标签法,在输入框中插入

xss靶场练习level 1-10_第6张图片

3.查看网页源代码,在第15行发现,输入的< >符合被HTML字符实体化为  <  和 >,猜测在服务器端对keyword这个参数使用了htmlspecialchars()函数,但是value参数中的值未被恶意编码,其中输入的payload被赋值给value,可以考虑闭合value的参数值

xss靶场练习level 1-10_第7张图片

4.尝试从标签中的属性进行突破,将属性中的><进行闭合,输入">//

解题思路:第一次输入时,

17行传参

第二次输入">时,

17行//''>

因为加入" 和//  导致浏览器误认为1行分为三个部分,即第一个标签内value传参为空,

将第二个红色部分当作代码执行,由于加入//,浏览器将最后的紫色部分屏蔽,使页面实现弹窗效果。

//''>

xss靶场练习level 1-10_第8张图片

5.弹窗

xss靶场练习level 1-10_第9张图片

  • level 3----单引号闭合并添加事件

1.对话框输入

xss靶场练习level 1-10_第10张图片

2.查看网页源码,发现与第二题相似,但17行value传参采用单引号闭合,且<>经过HTML字符实体化

猜测keywordvalue两个参数均使用了htmlspecialchars()函数

xss靶场练习level 1-10_第11张图片

3.由于最后的< > 均被转义,无法逃出标签,因此考虑事件驱动

输入' οnclick='alert(1)       然后点击“搜索”

解题思路:与level 2类似,都是通过构造语句,欺骗浏览器,使浏览器将value传参视为无,同时将输入的其他东西当作代码执行

当搜索框不输入任何东西时,17行

当输入' οnclick='alert(1) 时,17行value=' ' οnclick='alert(1) '>

浏览器把绿色部分当作代码执行,便出现了之后的点击对话框tan
xss靶场练习level 1-10_第12张图片

4.点击对话框,弹窗

xss靶场练习level 1-10_第13张图片

  • level 4-----双引号闭合并添加事件

1.查看网页源代码,发现传参方式与level 3类似,只是把单引号改成双引号,所以直接套用

level 3的方法,将单引号改成双引号即可。

xss靶场练习level 1-10_第14张图片xss靶场练习level 1-10_第15张图片xss靶场练习level 1-10_第16张图片xss靶场练习level 1-10_第17张图片

  • level 5----JavaScript伪协议

1.输入测试语句  查看源代码

xss靶场练习level 1-10_第18张图片xss靶场练习level 1-10_第19张图片

2.查看源代码发现17行     ">    "οnclick="alert(1)

"> xss //      发现标签中的字段都被加入下划线_

xss靶场练习level 1-10_第26张图片xss靶场练习level 1-10_第27张图片xss靶场练习level 1-10_第28张图片

2.尝试改变标签大小写"ONCLICK="alert(1)         点击“搜索”,点击搜索框,出现弹窗

xss靶场练习level 1-10_第29张图片xss靶场练习level 1-10_第30张图片

  • level 7----双写绕过

1.使用弹窗语句javascript:alert("xss")  检测,查看源代码,发现

标签中的双引号被转义处理,且参数value中的script被删除。

使用"οnfοcus=javascript:alert('xss')>//     on被删除

使用">xss//   href和scrip被删除

使用">xss//     均转化为小写
 

xss靶场练习level 1-10_第31张图片

xss靶场练习level 1-10_第32张图片xss靶场练习level 1-10_第33张图片xss靶场练习level 1-10_第34张图片

2.尝试双写绕过">xss//    双写关键字

查看服务器源代码:

  • 对参数值转换成了小写
  • 将基本的关键字都删除了,但是均只执行了一次 所以可以双写关键字绕过

xss靶场练习level 1-10_第35张图片

xss靶场练习level 1-10_第36张图片

  • level 8----unicode编码绕过

1.插入测试语句javascript:alert("xss")
并查看网页源码,提交的参数值一个会插入到标签的value属性值中,一个会插入到下方标签的href属性值中。标签中javascript被恶意添加下划线,参数value中的双引号被转义

插入"οnfοcus=javascript:alert('xss')>//  onfocus被恶意添加了下划线

闭合语句的引号被编码;onfocus、javascript均被恶意破坏语义;未删除关键字,则双写关键字绕过也不可以;大小写绕过也不可以;
xss靶场练习level 1-10_第37张图片

xss靶场练习level 1-10_第38张图片

2.尝试unicode编码测试语句javascript:alert("xss")

xss靶场练习level 1-10_第39张图片

编码后:javascript:alert("xss")

xss靶场练习level 1-10_第40张图片xss靶场练习level 1-10_第41张图片

  • level 9

1.插入弹窗语句javascript:alert("xss")       查看网页源代码

get方式传参,提交的参数值插入到了标签的value属性值中,发现value值的单引号被转义。
但是在标签的href属性中却并没有出现该参数值,而是显示的 "您的链接不合法?有没有!"

猜测这里可能对url地址做了识别。只有包含正常的url地址才能添加到href属性值中,因此构造一个有正常url地址的恶意代码javascript:alert('xss')http://www.qq.com
发现20行javscript被加入下划线

尝试大小写绕过,尝试双写绕过,尝试unicode全编码,尝试unicode只编码弹窗语句(url不编码)

最终发现只编码弹窗语句可以触发弹窗javascript:
alert('xss
')//http://www.qq.com

xss靶场练习level 1-10_第42张图片

xss靶场练习level 1-10_第43张图片

xss靶场练习level 1-10_第44张图片

查看服务器源码

  • 判断如果字符中没有http://的话就会返回false,接着在href属性值中就会出现"您的链接不合法?有没有!"判断成功后,返回第一次出现的位置,将该字符插入到href属性值中了

xss靶场练习level 1-10_第45张图片

  • level 10

1.无搜索框,尝试在url中输入测试语句
并查看网页源码

标签中的<  >被转义,并发现了三个标签

xss靶场练习level 1-10_第46张图片

2.找不到规律(查看服务器端网页源代码)


$str22说明是接收t_sort参数值的。$str33会删除t_sort参数值中的<>
这一关就只能是将js代码插入到标签的属性值中来执行,而不能通过闭合标签引入新的标签来触发xss了。

t_sort标签,之前都是隐藏状态,但是通过构造参数响应发现只有它里面的值被改变了。

插入代码在url中的level10?后面插入代码t_sort="οnclick=alert(1) type=text"

出现弹窗

xss靶场练习level 1-10_第47张图片

xss靶场练习level 1-10_第48张图片

你可能感兴趣的:(网络安全,ctf,xss,php,前端)