我饿了
 
级别:老 站 友 威望:0 经验:0 货币:827 体力: 来源:61.158.88.* 总发帖数:294 注册日期:2001-04-13
|
|
查看 邮件 主页 QQ 消息 引用 复制 下载
Stamina(我饿了) http://substorm.yeah.net/
2002.4.17
由于时间的仓促.没有能够很好的了解URL编码.所以为大家做如下简单的解释.
首先将字符转换为ASCII码,之后将ASCII制转换成16进制.再在前面加上一个"%"就是该字符的URL编码了!~(注:空格会被编成加号"+").如果你弄过CGI安全.一定会了解这东西.
最近analysist的跨站攻击不知大家看过没有..我想这东西会对跨站攻击有所帮助...想想看.你知道这样的连接是什么吗??
%73%75%62%73%74%6F%72%6D%2E%79%65%61%68%2E%6E%65%74
在地址栏中输入并访问你就知道是什么了:).我想这样的链接隐蔽性还是比较大的吧~
知道编码方法后就好办了.这里用C写了一段代码.可用来将字符转换成URL编码.程序写的简陋.所以请高手们不要吝惜你们的批评.只有这样我才可以写的更好.谢谢!~.
由于时间问题.没有加入解码部分.等有时间吧~希望能对你有所帮助.
这是编译好的一个可以直接下载.
#include <stdio.h>
void usage(char *);
int main(int argc, char* argv[]) { int c; char *h =
"0123456789ABCDEF";
if (argc !=2) usage(argv[0]);
else do {
c = *(argv[1]++); if (c==' ')
putchar('+'); else { putchar('%'); putchar(h[c
>> 4]); putchar(h[c & 0X0F]); } }
while(*argv[1]);
} void usage(char *proname) {
printf("Power by Stamina 2002.4.17" "\nWelcome to
http://Substorm.yeah.net/" "\nThank you for RockTank!!"
"\n\nUsage: %s <string>" "\ne.g. : %s
substorm.yeah.net",proname,proname); }
/* WindowXP +
VC++6.0 */
下面放上一段analysist用perl写的程序.而且可以解码.推荐!!!!
#!/usr/bin/perl #Proof of Concept #URL Encode &
Decode Script #Codz by analysist <analysist@nsfocus.com>
$ARGC = @ARGV; if ($ARGC != 2) { print "Usage: $0
<option> <string>\n"; print " 1:url encode \n";
print " 2:url decode \n"; exit; }
$option =
shift; $string = shift;
if ($option == 1) { @todo =
split("",$string); @todo2 = map(ord($_),@todo); @todo3 =
map(&int2hex($_),@todo2); $string = join("%",@todo3);
$string = "%".$string; print $string; } elsif
($option == 2) { $string =~
s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; print
$string; } else { print "Invalid option!\n"; exit;
}
sub int2hex { my ($int) = @_;
push(@int,int($int/16)); push(@int,int($int%16)); @xxx =
(10,11,12,13,14,15); @yyy = (A,B,C,D,E,F); $x = 0; while
($x < @int) { $y = 0; while ($y < @xxx) { if
($int[$x] eq $xxx[$y]) { push(@hex,$yyy[$y]); last; }
$y++; } if ($hex[$x] eq "") { push(@hex,$int[$x]);
} $x++; } $hex = join("",@hex); undef @int;
undef @hex; return $hex; } |