WEB-Cookie注入与伪静态注入

— 从零开始的笔记 —
— cookie 伪静态 中转 —


因为cookie注入与伪静态注入都可以利用到中转注入,所以合在一起说明了
但是对于中转注入的编写,还停留在工具上,并没有自己实践编写,所以这里只是简单提一下。

Cookie注入

前言

一开始看到教程一大篇,以为很高端….结果….还是属于sql注入,而且emmmm很极端啊= =
asp设计的特性使之更容易出现在.ASP文件中

使用条件

  • 服务器使用客户端传递的参数时候,使用的是Request对象
  • 专门检查了Request.QueryStringRequest.form中的参数,没有专门检查Request.Cookies中的参数
  • 使用参数时,没有详细区分,使用Request("参数名称")

REQUEST:ASP脚本中的request对象。它被用于从用户那里获取信息。
Request对象的通常使用:request.[集合名称](参数名称)
request.form(“参数名称”)
但是request集合名称可以省略,即可以省略from
若省略,ASP规定是按QueryString(GET)、Form(POST)、Cookies、ServerVariables(服务器变量)的顺序来获取数据的。
所以request(“id”),程序员实际是想从get或者post中获取,但事实是也可以从cookie中获取,而request.Cookies并没有被过滤,从而导致Cookie注入

使用方法

极其简单,把原来在GET或POST中的参数写到cookie中就可以了
大多数手注教程中都在地址栏中填入类似的js脚本来修改Cookie(自己在火狐浏览器中实践时,浏览器会吞掉 javascript: 需手打)
javascript:alert(document.cookie="id="+escape("payload"));

  • alert():弹出窗口
  • document.cookie:缓存在本地的Cookies
  • =:实际为添加Cookie不是覆盖全部
  • escape:编码,防止乱码

实际上burpsuite 抓包修改cookie,再URL编码,即可

伪静态注入

伪静态技术

伪静态页面技术:把动态页面的地址转换成以htm或html结尾的地址,看起来是静态的,实际是依然是动态页面。
通常分为两种形式:

  • 框架伪静态:动态内容链入主框架页面。整个网页URL是一样的。
  • 利用组件把asp、aspx、php等后缀及参数隐藏,显示为htm或html。可以通过访问源页面

伪静态技术的优点:

  • 防止sql注入,隐藏参数,或转变参数使其不容易被直接发现
  • 为了SEO(搜索引擎优化)方便检测抓取,搜索引擎一般不去抓取?之后的内容

伪静态实现方法

1.PHP的pathinfo实现:利用pathinfo()函数解析url,然后重构
原URL:http://localhost/index.php?m=Index&a=test
转化URL:http://localhost/index.php/Index/test
2.web服务器apache实现:可自己设计,隐藏掉页面名称

伪静态的apache实现

利用 Apache的URL重写(mod_rewrite)功能映射。
详细操作

真实页面bbs.itcast.cn/index.php?m=article&id=1
URL显示页面bbs.itcast.cn/news/1.html
Apache 的伪静态规则:
RewriteRule ^news/([0-9]+)\.html$ index.php?m=article&id=$1 [L]

  • RewriteRule:固定开头
  • ^news/([0-9]+).html$:这部分是匹配当前的url地址, 也就是伪静态的地址
  • [0-9]+:表示至少有1个数字,可以是0也可以是无限大
  • index.php?m=article&id=$1:这里是指向对应的真实地址
  • $1:配对上面的第一个括号, $2匹配第二个以此类推
  • [L]:L意思是如果此规则匹配,则停止,不在匹配后面的,减少无必要查询 。

伪静态注入

伪静态的注入和URL的普通GET注入不太相同。
普通url的get注入的%20(空格),%23(#),+等都可以用;但是伪静态不行,会被直接传递到到url中。
另外用/**/这个注释符号表示空格。

http://www.XXXXX.com/vote /5453′/1 报错,
http://www.XXXXX.com/vote/5453-0/1 返回正常游戏名字 (使用-号,是因为+号会被当做url编码)
http://www.2cto.com /vote/5453-1/1 返回5452的游戏名字,判断存在注入点

http://www.xxx.com/page/html/56'/**/and/**/1=1/*.html 正常
http://www.xxx.com/page/html/56'/**/and/**/1=2/*.html 出错

之后按照正常套路注入

中转注入

所谓中转注入即在目标与本机之间建立第三方服务器来中转攻击。
可以是在本地建立一个网站,访问本地网站,让这个网站去访问目标网站然后返回访问结果。

中转注入在COOKIE注入与伪静态注入中适用的地方在于可以方便简化注入的步骤

  • COOKIE注入中,可以用自己建立的网站来转化GET参数为COOKIE,构造访问请求发送给目标网站,之后只在自己建立的网站中修改get参数即可
  • 伪静态注入中,可以用自己建立的网站来转变URL把对方静态页面的参数再转变为?参数=值的形式,之后只在自己建立的网站中输入get参数即可。

接下来就只要访问自己建立的网站就可以进行下一步攻击。另外有ASP的注入中转生成器可以利用。