| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | 

您现在的位置: 中国X黑客小组 >> 技术文章 >> 编程技术 >> 黑客编程 >> 文章正文 用户登录 新用户注册
  注入工具的原理和开发         ★★★ 【字体:
注入工具的原理和开发
作者:未知    文章来源:黑客防线    点击数:    更新时间:2006-1-16    

“注入”这一词眼下可算得上时髦,“大街小巷”到处都能“听”到看到。这一词曾经让无数人“闻名色变”,今天我们的话题仍是注入。不过今天我们这里的这个注入不同于以往的,它有别于通常的SQL注入,可以说是一种新型的。平日里,人们在提交数据的时候都是采用页面形式。但是,今天我们这里就要打破这一传统观念。这种方法是通过自己构造HTTP请求报文,以程序的方式代替传统的方法,实现数据的自动提交。  
在文章还未进入正题的时候,我就HTTP协议这个东西给大家再罗嗦两句。其实关于HTTP协议这个东西我本来都不想说的。但是,为了照顾大多数朋友。平日里,当我们在打开一个网站的时候,比如说http://www.36963.cn/,实际上IE作为一个客户端,它将向服务器发送的是如下的请求报文: 
GET / HTTP/1.1  
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-  
powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*  
Accept-Language: zh-cn  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)  
Host: www.36963.cn  
Connection: Keep-Alive  
Cookie: NETEASE_SSN=hinrof; NETEASE_ADV=11&22; Province=0; City=0; NTES_UV_COOKIE=YES  
从以上的报文中,我们可以看到很多字段,不过其中有很多并不是必须的,如果我们自己编程,只关心必要的就行了。在HTTP/1.1协议中规定了最小请求消息由方法字段(GET/POST/HEAD)和主机字段(HOST)构成。如上面的  
GET /HTTP/1.1  
HOST:www.36963.cn  
但在HTTP/1.0中,HOST字段并不是必须的,至于这里为什么不能省,继续往下看。 
GET和POST是浏览器向服务器提交报文通常所采用的两种方法。服务器在收到报文之后,解码分析出所需的数据并进行处理,最后返回结果。通常我们可以看到的都是像http://***.***.***.***/list.asp?id=***这样的URL请求,我们可以自己构造如下的报文来完成 。 
GET /list.asp?id=*** HTTP/1.1  
HOST:***.***.***.***  
由于受URL长度1024的限制,所以GET方法通常是用在提交一些小数据的情况下。如果数据比较大就只能采用POST方法。在讲解POST方法的一些要点之前,大家还是先来看一段POST请求报文。  

POST /huace/add.php HTTP/1.1  
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-  
powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwav  
e-flash, */*  
Referer: http://202.147.125.36/huace/add.php  
Accept-Language: zh-cn  
Content-Type: application/x-www-form-urlencoded  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)  
Host: 202.147.125.36  
Content-Length: 115  
Connection: Keep-Alive  

name=test&email=&comefrom=&homepage=&icq=&oicq=&image=say.gif&comment=test&password=&doadd=%B7%A2%CB%CD%C1%F4%D1%D4  
与GET方法相比,在字段下面多了一段内容,这就是我们提交的数据,如果有中文须经过urlencode编码。同样让我们省去不必要的字段,构造一个最小的POST请求。 
POST /huace/add.php HTTP/1.1  
Host: 202.147.125.36  
Content-Type: application/x-www-form-urlencoded  
Content-Length: 115  
name=test&email=&comefrom=&homepage=&icq=&oicq=&image=say.gif&comment=test&password=&doadd=%B7%A2%CB%CD%C1%F4%D1%D4  
上面的Content-Type字段表示为POST表单型的,Content-Length当然就是表示实体数据的长度了,这里都不能少,不然就无法正确接收了。这样,服务器端处理页面就会收到提交的数据,并接收处理。 
上面不知不觉的讲了一大堆关于客户端的东西,接下来看服务器方面。当报文数据到达服务器后,服务器底层进程进行接收并放入特定的缓冲区,同时设置一些环境变量,如“CONTENT_LENGTH“、”QUERY_STRING“等,当然这其间还是屏蔽了一些底层细节的,如客户端提交的数据是怎么被重置到被请求页的标准输入的,在此我们就不做过多的考虑。之后高层应用程序如CGI、ASP、PHP等对其进行数据提取,其中CGI还须自己进行Unencode解码和字符串提取。假如向一个ASP程序提交数据,我提交了name和body字段,且采用POST表单方式提交,在ASP程序中应如下进行接收:  
name=request.form("name")  
body=request.form("body")  
并添加到数据库中  
rs.addnew  
rs("name")=name  
rs("body")=body  
rs.update  
到此,该讲的也基本上讲完了,同时这里我们还要注意一点就是我们在发送报文时,“name=value“URLEncode编码这个东西不能少,如果没有它,我们在向数据库写东西的时候有可能就会失败。同时我们在这里还要注意一个问题,当编译器处理的是中文字符时,它会自动根据字符的位7来读入一个或两个字符,这时可以强制采用unsigned char *来读入一个字符。  
int isT(char ch)  
{  
if(ch==’ ’||ch==’%’||ch==’/’||ch&0x80) return 1;  
else return 0;  
}  

int encode(char *s,char *d)  
{  
if(!s||!d) return 0;  
for(;*s!=0;s++)  
{  
unsigned char *p=(unsigned char*)s;  
if(*p==’ ’)  
{  
*d=’%’;  
*(d+1)=’2’;  
*(d+2)=’0’;  
d+=3;  
}  
else if(isT(*p))  
{  
char a[3];  
*d=’%’;  
sprintf(a,"%02x",*p);  
*(d+1)=a[0];  
*(d+2)=a[1];  
d+=3;  
}  
else  
{  
*d=*p;  
d++;  
}  
}  
*d=0;  
return 1;  
}  


以下是Unencode URL解码函数: 

int unencode(char *s,char *d)  
{  
if(!s||!d) return 0;  
for(;*s!=0;s++)  
{  
if(*s==’+’)  
{  
*d=’ ’;  
d++;  
}  
else if(*s==’%’)  
{  
int code;  
if(sscanf(s+1,"%02x",&code)!=1) code=’?’;  
*d=code;  
s+=2;  
d++;  
}  
else  
{  
*d=*s;  
d++;  
}  
}  
*d=0;  
return 1;  
}  
…… 

文章录入:IceRiver    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    6月安全专题集中营
    扔掉工具,让你飞速学会手工
    假是真时真是假——or注入教
    新or注入教程
    木马成生财工具 黑色产业链威
    HP-UX get_system_info的工具
    XSS跨站脚本及SQL注入漏洞技
    请不要相信黑客工具 可以帮你
    Google新工具完善对隐私权保
    ASP注入应用漏洞解决方法整理
      网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    Powered by ICE RIVER - STUDIO
    » CnXHacker.CoM   © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved.