XSS学习笔记1

目录

xss(简介)

javascript 插入进去的方式

xss类型

xss闯关小游戏

leval1

leval2

leval3

leval4

leval5

leval6

leval7

leval8

leval9

leval10


xss(简介)

xss是跨站脚本攻击的缩写。恶意攻击者往web页面插入javascript代码,当用户浏览该页时,web里面的script就会对用户发起攻击
也就是说在css或html里面嵌入一些恶意的javascript,实现攻击目的

javascript 插入进去的方式

1,输入框中直接输入恶意脚本


  • 使用document对象的cookie属性,可以让你读取、添加和更新文档(当期HTML)所关联的cookie。
  • alert() 可以弹出提示框

  • document.location.href和document.location.replace
document.location.href和document.location.replace都可以实现从A页面切			  换到B页面,
但他们的**区别**是:
		-用 document.location.href切换后,可以退回到原页面。
		-而用document.location.replace切换后,不可以通过“后退”退回到原页面。

2,html标签中嵌入恶意脚本,如src,href,css,style等





  • 关于list-style-image的详解
    XSS学习笔记1_第1张图片
    3,将恶意脚本注入在event事件中,如onClick,onBlur,onMouseOver等事件。

  • οnclick=“function()” 表示点击后会执行 function
百度知道
  • onblur 鼠标离开表单input触发的事件.onblur 事件会在对象失去焦点时发生,所谓焦点指的就是当前操作的对象
  • onmouseover 指鼠标移动都某个指点的HTML标签上,会出现什么效果。
    XSS学习笔记1_第2张图片
  • 在 style sheet,javascript中,如
//引入外部标签
 
  • meta 标签


  • 自动刷新并指向新页面。

xss类型

(1)反射性:

非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。

(2)存储型:

持久化,代码是存储在服务器中的,如在个人信息或发表文章以及留言板等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie等

(3)DOM:

DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。

xss闯关小游戏

(只要触发alert函数就能跳转到下一关)

leval1

后台看php源码

欢迎用户".$str."";
?>
  • ini_set 大概去了解了一下.没什么用
    XSS学习笔记1_第3张图片
    那我们看源码,可以发现没有对传入的name进行任何限制。所以我们可以直接构造任意可弹窗。
    XSS学习笔记1_第4张图片

leval2

分析源码,查看输入点

没有找到和".htmlspecialchars($str)."相关的结果.".'
'; ?>

XSS学习笔记1_第5张图片
htmlspecialchars() 函数,它把预定义的字符转换为 HTML 实体。
预定义的字符是:

&:转换为&
":转换为"
':转换为成为 '
<:转换为<
>:转换为>

XSS学习笔记1_第6张图片
我们看到输入点1已经被html实体化了,那我们在输入点2输出

" onclick=alert(1)>     需要点击一下输入框。(点击事件-JS知识点)

" onmouseover=alert(1)>   需要要鼠标滑过输入框(鼠标事件-JS知识点)

"> 前面形成闭合

leval3

看源码

没有找到和".htmlspecialchars($str)."相关的结果."."
"; ?>

可以从这个看到value值也被实体化

'onclick=alert(1)//    导航栏输入这个语句,然后点击一下输入框

后面无法闭合,所以使用了注释“//”
这样的话:
XSS学习笔记1_第7张图片

leval4

查看源码

","",$str);
$str3=str_replace("<","",$str2);
echo "

没有找到和".htmlspecialchars($str)."相关的结果.

".'
'; ?>

可以看到将><都替换为空
这题与上题类似,闭合双引号即可
XSS学习笔记1_第8张图片

"onclick=alert(1)//     -点击一下输入框
" οnfοcus=alert(1) autofocus="
  • Onfocus事件:定义的事件将在对象获得焦点时触发,这里指input标签获得焦点。
  • Autofocus属性:input标签的属性,当页面加载input标签,自动获得焦点。

leval5

查看源码

没有找到和".htmlspecialchars($str)."相关的结果.".'
'; ?>

还是在第二个语句闭合,这回on也过滤了,但是<>没有过滤

">test      点击test