学习脚本黑客:cookie欺骗漏洞和XSS攻击
2018-02-16 23:35
1291 查看
本文介绍两种黑客攻击技术
写的有点乱,想到哪就写到哪。
下面开始详细介绍cookie
[b]Cookie的语法格式[/b]
一般情况下,cookie通常由服务器端通过HTTP请求和相应头发送给浏览器,但是利用JavaScript,可以在本地浏览器中设置cookie,这样做的好处是免除了服务器端处理cookie的工作,从而降低服务器的负担
Cookie是由“名-值”对组成的文本;一个cookie字符串中最多能过存储20个“名-值”对;对于每一个HTML文档来说,浏览器只存储一个cookie;
在构造cookie时,制定的“名-值”对的
其中,方括号表示该属性可以省略,
[b]Cookie属性详解[/b]
1.
这个属性是指定Cookie数据项的名称;一般比较常见的名称包括会话标识用户名等,可以指定喜欢的任何标识符作为该名称;语法格式为:
栗子:
2.
这是一个可选属性,它指定了cookies的过期日期;一般情况下,给data一个接近会话时间的日期时间值,这样,在浏览器结束当前会话时,cookie就会过期,从而删除cookie;但是可以通过给expires属性给定一个较长的时间值,从而长久的保存该cookie;其格式为:
栗子:
3.
这也是一个可选项,指定cookie可以用于特定服务器中的什么位置;在cookie中指定路径可以同一个域中的多个页面共享,例如:
栗子:
4.
同样是一个可选项,它指定是否所作用的域名后,可以在同一个域的多个服务器之间共享cookie,而无需为每一个服务器都指定cookie;语法既可以使用完整的URL格式,也可以省略http://来写:
栗子:
5.
可选。它指定是否通过安全的通道传输cookie;如果设定该属性,则必须使用HTTP协议进行传输,其语法格式(栗子)为:
Cookie最广泛的应用就是“网络购物车”
补充知识到此为止。
[b]Cookie欺骗漏洞正文部分[/b]
对于Windows用户,可以在
对于Mac用户,可以在
既然是文本文件,必然可以修改 :-)
我们可以把Cookie修改成别人的,这样达到欺骗浏览器的目的(好坏(´▽`))
推荐使用第三方软件打开……
4000
Cookie文件是以不同的站点为组织的
比如上面,点击“百度域名”,可以找到围绕该域名有一个“BAIDUID”文件,点击进入(如果用第三方软件,文件界面会组织得很好,方便修改)
然后就可以修改相关信息了
在这之前,需要用到一点Google Hack的知识
……
一般来说对于人机交互比较高的程序, 比如论坛,留言板这类程序都比较容易进行跨站攻击; 利用跨站漏洞黑客可以在网站中插 入任意代码,这些代码的功能包括获取网站管理员或普通用户的 cookie,隐蔽运行网页木 马,甚至格式化浏览者的硬盘,只要脚本代码能够实现的功能,跨站攻击都能够达到,因此 跨站攻击的危害程度丝毫不亚于溢出攻击
浏览器为什么会执行恶意用户输入的代码呢?这是由于浏览器的不足之处而造成的。浏 览器的功能就是解释 Web 服务器发送过来的 HTML 代码,它无法分辩出哪些 HTML 代码应该解 释执行,哪些只是数据内容(比如上面提到的昵称、评论、头像、E-mail 等)从而应该简 单显示
如果恶意用户的输入部分符合 HTML 的语法规范,则在显示时,就会被浏览器自动 解释成 HTML 代码
如果利用浏览器 的某些漏洞,绕过浏览器的安全策略,那么可以随意实现访问硬盘,执行代码的任意功能了, 这就是常说的“挂马”了
[b]检测漏洞条件[/b]
经典的
如果发现真的出现了弹出消息框(alert函数被执行。),则说明该页面存在XSS漏洞(开心啊)
但是因为这个漏洞太常见了所以修复工作也做的很好,大部分这样的语句都被过滤掉了(也就是说,此处输入的
这时候不要灰心,我们可以转换思路,从已经存在的属性字段中挖掘漏洞:
如果
或者添加空格:
还可以用事件属性避免关键字(如
另外,可以借助如Google的开发者工具查看网页源码:
通常一种常规的关键字替换操作是:
此外,如果有符合自己尝试行输入的本文代码也是潜在的漏洞(因为这样网页源码的内容就完全取决于你的输入):
假设你通过查看网页源代码,发现
BINGO!,这里(没有改变的输入内容,看到这里会兴奋的)
不就是我们最先尝试的哪个注入语句吗?看来这里是一个潜在的注入点——我们可以尝试不同的输入以达到改变上下文的完整意思的目的
解释:
一次成功攻击!(虽然很简单。)
总结几点:
1. 学会查看网页源码
2. 在1的基础上不断测试注入语句,能找到嵌套内容完全不变的就是注入点
3 最关键的是构造注入语句,指导思想是“闭合语句,让源代码(网页代码)失效,让新代码(注入代码)生效”
4. 学习JS脚本语句,对于基本语句的使用要烂熟于心
写的有点乱,想到哪就写到哪。
cookie欺骗漏洞
首先明确,cookie是一个文本文件,存储在我们本地主机上以方便下一次重复登录同样的页面;cookie伴随着用户的请求和页面在Web服务器与浏览器之间传递下面开始详细介绍cookie
[b]Cookie的语法格式[/b]
一般情况下,cookie通常由服务器端通过HTTP请求和相应头发送给浏览器,但是利用JavaScript,可以在本地浏览器中设置cookie,这样做的好处是免除了服务器端处理cookie的工作,从而降低服务器的负担
Cookie是由“名-值”对组成的文本;一个cookie字符串中最多能过存储20个“名-值”对;对于每一个HTML文档来说,浏览器只存储一个cookie;
在构造cookie时,制定的“名-值”对的
name=value称为属性,它必须使用分号作为结束符;在组成cookie的字符串中不允许使用分号、逗号、以及空白符;HTTP Set-Cookie头的格式为:
Set-Cookie:name=value;[expires=data];[path=pathname];[domain=domainname];[secure];
其中,方括号表示该属性可以省略,
name=value属性可以包含多个;例如:
Set-Cookie:id="习近平";expires=Wed,28-Fer-07 15:13:00 GMT;domain="baidu.com";path="/";secure;
[b]Cookie属性详解[/b]
1.
name=value
这个属性是指定Cookie数据项的名称;一般比较常见的名称包括会话标识用户名等,可以指定喜欢的任何标识符作为该名称;语法格式为:
nameofcookie=value; ;nameofcookie => cookie的数据项的名称 ;value => 该名称对应的值,是一个字符串(不含逗号分号空白符)
栗子:
id=123456789 email=fuckyouanyway@gamil.com name=demon
2.
expires=data
这是一个可选属性,它指定了cookies的过期日期;一般情况下,给data一个接近会话时间的日期时间值,这样,在浏览器结束当前会话时,cookie就会过期,从而删除cookie;但是可以通过给expires属性给定一个较长的时间值,从而长久的保存该cookie;其格式为:
expires=weekday, DD-MON-YY HH:MM:SS GMT ;weekday:星期几(全称或者缩写),时间按照时:分:秒来写,GMT为格林威治时间 ;一旦cookie过期,会自动删除
栗子:
expires=Friday, 14-Jan-07 15:50:00 GMT expires=Mon, 14-Jan-07 15:40:12 GMT
3.
path=pathname
这也是一个可选项,指定cookie可以用于特定服务器中的什么位置;在cookie中指定路径可以同一个域中的多个页面共享,例如:
栗子:
path=\home path=\aa\bb\int(Windows下为反斜杠)
4.
domain=domaimname
同样是一个可选项,它指定是否所作用的域名后,可以在同一个域的多个服务器之间共享cookie,而无需为每一个服务器都指定cookie;语法既可以使用完整的URL格式,也可以省略http://来写:
栗子:
domain=www.google.com domain=http://www.baidu.com
5.
secure
可选。它指定是否通过安全的通道传输cookie;如果设定该属性,则必须使用HTTP协议进行传输,其语法格式(栗子)为:
secure;
Cookie最广泛的应用就是“网络购物车”
补充知识到此为止。
[b]Cookie欺骗漏洞正文部分[/b]
对于Windows用户,可以在
C:\Document and Setting\用户名\Cookies目录中找到Cookie文件(文本文件)
对于Mac用户,可以在
~/Library/cookies找到Safari的cookie,在
~/library/application support/google/chrome找到Chrome的cookie
既然是文本文件,必然可以修改 :-)
我们可以把Cookie修改成别人的,这样达到欺骗浏览器的目的(好坏(´▽`))
推荐使用第三方软件打开……
4000
Cookie文件是以不同的站点为组织的
比如上面,点击“百度域名”,可以找到围绕该域名有一个“BAIDUID”文件,点击进入(如果用第三方软件,文件界面会组织得很好,方便修改)
然后就可以修改相关信息了
在这之前,需要用到一点Google Hack的知识
intext:function tovote(){window.open} intext:submit():}" intext:formvote.action= intext:write(vote)
……
XSS漏洞攻击
跨站漏洞产生的原因是由于程序员在编写程序时对一些变量没有做充分的过滤,直接把 用户提交的数据送到 SQL 语句里执行,这样导致用户可以提交一些特意构造的语句 一般都 是带有像 JavaScript 等这类脚本代码;在这基础上,黑客利用跨站漏洞输入恶意的脚本代 码,当恶意的代码被执行后就形成了所谓的跨站攻击一般来说对于人机交互比较高的程序, 比如论坛,留言板这类程序都比较容易进行跨站攻击; 利用跨站漏洞黑客可以在网站中插 入任意代码,这些代码的功能包括获取网站管理员或普通用户的 cookie,隐蔽运行网页木 马,甚至格式化浏览者的硬盘,只要脚本代码能够实现的功能,跨站攻击都能够达到,因此 跨站攻击的危害程度丝毫不亚于溢出攻击
浏览器为什么会执行恶意用户输入的代码呢?这是由于浏览器的不足之处而造成的。浏 览器的功能就是解释 Web 服务器发送过来的 HTML 代码,它无法分辩出哪些 HTML 代码应该解 释执行,哪些只是数据内容(比如上面提到的昵称、评论、头像、E-mail 等)从而应该简 单显示
如果恶意用户的输入部分符合 HTML 的语法规范,则在显示时,就会被浏览器自动 解释成 HTML 代码
如果利用浏览器 的某些漏洞,绕过浏览器的安全策略,那么可以随意实现访问硬盘,执行代码的任意功能了, 这就是常说的“挂马”了
[b]检测漏洞条件[/b]
经典的
alert()函数测试:
<script>alert('Hack!')</script>
如果发现真的出现了弹出消息框(alert函数被执行。),则说明该页面存在XSS漏洞(开心啊)
但是因为这个漏洞太常见了所以修复工作也做的很好,大部分这样的语句都被过滤掉了(也就是说,此处输入的
<script>这样的标签已经被实体化为真正的字符了所以不起作用)
这时候不要灰心,我们可以转换思路,从已经存在的属性字段中挖掘漏洞:
<img src=javascript:alert("test") >
如果
javascript:关键字也被过滤掉了,就试试用ASCII码表示(转换成一些16进制的值):
<img src="javascript:alert(/xss/)">
或者添加空格:
<img src="javas????cript:alert(/xss/)" width=100>
还可以用事件属性避免关键字(如
javascript:等)绕过检测:
<img src="#" onerror=alert(/xss/)>
<img src="#" style="Xss:expression(alert(/xss/));">
另外,可以借助如Google的开发者工具查看网页源码:
通常一种常规的关键字替换操作是:
<替换为
<,
>替换为
>,这样一来浏览器只会攻击者输入的
<作为普通文本对待(而不是HTML之类的网页代码),这也算是一个小经验吧。
此外,如果有符合自己尝试行输入的本文代码也是潜在的漏洞(因为这样网页源码的内容就完全取决于你的输入):
假设你通过查看网页源代码,发现
<a href =></a>的超链接形式
<a href="mailto:<img src=javascript:alert("test")>"></a>
BINGO!,这里(没有改变的输入内容,看到这里会兴奋的)
<img src=javascript:alert("test")>
不就是我们最先尝试的哪个注入语句吗?看来这里是一个潜在的注入点——我们可以尝试不同的输入以达到改变上下文的完整意思的目的
"></a><img src=javascript:alert("test") >
解释:
"和之前的冒号闭合,
</a>闭合整个超链接标签(某种意义上使其失效),
<img src=javascript:alert("test") >这就是我们真正要注入执行的代码了(前面的是闭合语句,这才是攻击语句)
一次成功攻击!(虽然很简单。)
总结几点:
1. 学会查看网页源码
2. 在1的基础上不断测试注入语句,能找到嵌套内容完全不变的就是注入点
3 最关键的是构造注入语句,指导思想是“闭合语句,让源代码(网页代码)失效,让新代码(注入代码)生效”
4. 学习JS脚本语句,对于基本语句的使用要烂熟于心
相关文章推荐
- 学习脚本黑客:再谈XSS漏洞
- 学习脚本黑客:‘or’=‘or’和暴库漏洞攻击
- Cookie欺骗 腾讯拍拍秒杀活动的验证码漏洞
- 精通脚本黑客学习笔记(三)
- 【安全牛学习笔记】反射型XSS攻击漏洞的原理及解决办法
- 【安全牛学习笔记】手动漏洞挖掘-SQL注入XSS-简介、跨站脚本检测和常见的攻击利用手段
- 学习脚本黑客:Google Hack
- JavaScript学习笔记-跨站脚本(Cross-site scripting,CSS,XSS)漏洞
- SQL脚本语言学习黑客篇
- 精通脚本黑客学习笔记(四)
- 精通脚本黑客-2.1-学习笔记
- 怎样避免上线网站遭受DDOS攻击,XSS攻击,SQL漏洞,脚本注入?
- cookie欺骗漏洞一枚
- 精通脚本黑客学习笔记(二)
- 精通脚本黑客学习笔记(一)
- Cookie设置HttpOnly属性,防止前端脚本更改cookie的XSS攻击
- 精通脚本黑客学习笔记(五)
- Shell脚本学习笔记-用户输入处理
- 三次学习ssession和cookie
- Photoshop曝高危漏洞 黑客可发动远程攻击