CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  CGI

求购程序

楼主liaokuo(辽阔)2001-12-20 20:53:44 在 Web 开发 / CGI 提问

我的软件是木马克星  
   
  需要1个perl用来控制只有注册用户才可以升级病毒库  
  接收到ie发送的   用户名后  
  打开name.txt文件  
  判断是否有用户名  
  如果有就包pass.txt中的内容发送给用户  
   
  愿意做的话,  
  请把报价发送到  
  iparmor@luosoft.com 问题点数:200、回复次数:18Top

1 楼bubupig(布布猪)回复于 2001-12-20 22:52:05 得分 0

你是木马克星的作者么?名人啊,名人。这种简单功能用perl来说仅仅是不到百行的事情。不要花钱的。Top

2 楼liaokuo(辽阔)回复于 2001-12-21 00:08:09 得分 0

过奖了,谢谢Top

3 楼liaokuo(辽阔)回复于 2001-12-21 00:11:28 得分 0

#!/usr/bin/perl  
  print   "Content-type:   text/html   \n\n";  
  $a="http://www.luosoft.com/510/virus.300";  
  #上面为路径.  
  open(FILE1,"name.txt");  
  @FILE2=<FILE1>;  
  $file3=@FILE2;  
   
  if   (index(QUERY_STRING,@FILE2)>-1)  
  #上面这行问题很大,如果用户填A,很容易通过  
  {  
  print   $a;    
  }  
  else  
  {  
  print   @FILE2;  
  }  
  close(FILE1);  
  Top

4 楼netken(小肯)回复于 2001-12-21 09:26:13 得分 200

html文件写如下:  
  <FORM   method=POST   action="/cgi-bin/checkusr.cgi">  
  <INPUT   type="text"   name="usr"   size=20>  
  <INPUT   type="submit"   value="发送">  
  </FORM>  
   
  然后   /cgi-bin/checkusr.cgi   的内容如下:  
  #!/usr/bin/perl  
   
  read(STDIN,$string,$ENV{'CONTENT_LENGTH'});  
   
  print   "Content-type:text/html\n\n";  
  print   "usr   error   !"   unless   $string;  
   
  open(DATA,"<name.txt");  
  while   (<DATA>)   {  
      if   (   $string   eq   $_   )   {  
          open(SEND,"<pass.txt");  
          print   while   (<SEND>);  
          close   SEND;  
          $ifsend   =   1;  
          return;  
      }  
  }  
  close   DATA;  
  print   "usr   error!"   unless   $ifsend;  
   
  试一下看行不行,感觉没什么问题;)  
  但注意你name.txt   的设置,最好不要有空行,或者字母极少的行  
  当然,可以在   while   前面加一些对   $string   的判断来提高安全性  
   
  pass.txt   是html格式么?若不是的话,最好在其前加上<pre>,或者用输出  
  content-type:text/plain\n\n  
   
  Top

5 楼netken(小肯)回复于 2001-12-21 09:30:38 得分 0

对了,忘记了  
  $string   需要解码的  
   
  $string   =~   s/%([a-fA-F0-9]{2})/pack("C",hex($1))/ge;  
   
  加在   read(...)   后面,hehe,太粗心了;p  
   
  还有在   while   (<DATA>)   {  
  后加   上  
   
  chomp;  
   
  hoho,净是些低级错误;(  
  Top

6 楼netken(小肯)回复于 2001-12-21 09:32:31 得分 0

总程序如下:  
   
  #!/usr/bin/perl  
  read(STDIN,$string,$ENV{'CONTENT_LENGTH'});  
  print   "Content-type:text/html\n\n";  
  print   "usr   error"   if   length($string)   >   1024;  
  print   "usr   error   !"   unless   $string;  
  $string   =~   s/%([a-fA-F0-9]{2})/pack("C",hex($1))/ge;  
  open(DATA,"<name.txt");  
  while   (<DATA>)   {  
      chomp;  
      if   (   $string   eq   $_   )   {  
          open(SEND,"<pass.txt");  
          print   while   (<SEND>);  
          close   SEND;  
          $ifsend   =   1;  
          return;  
      }  
  }  
  close   DATA;  
  print   "usr   error!"   unless   $ifsend;  
  Top

7 楼liaokuo(辽阔)回复于 2001-12-21 09:56:11 得分 0

非常抱歉,有2个问题  
  A.上面的程序,是否传递  
  http://www.luosfot.com/cgi-bin/iparmor.cgi?我叫张三  
  然后判断我叫张三是否出现在name.txt里?  
   
  B问题:  
  我没有pass.txt,是否可以用  
  $a="http://www.luosoft.com/510/virus.300"  
  print   $a;  
  来代替         open(SEND,"<pass.txt");  
          print   while   (<SEND>);  
          close   SEND;Top

8 楼liaokuo(辽阔)回复于 2001-12-21 10:01:08 得分 0

刚刚测试  
  很明显  
  A问题:  
  http://www.luosfot.com/cgi-bin/iparmor.cgi?我叫张三  
  错误  
  http://www.luosfot.com/cgi-bin/iparmor.cgi?input我叫张三  
  仍然提示  
  "usr   error"  
  帮我Top

9 楼liaokuo(辽阔)回复于 2001-12-21 10:02:32 得分 0

#!/usr/bin/perl  
  read(STDIN,$string,$ENV{'CONTENT_LENGTH'});  
  print   "Content-type:text/html\n\n";  
  $a="http://www.luosoft.com/virus.300";  
  print   "usr   error"   if   length($string)   >   1024;  
  print   "usr   error   !"   unless   $string;  
  $string   =~   s/%([a-fA-F0-9]{2})/pack("C",hex($1))/ge;  
  open(DATA,"<name.txt");  
  while   (<DATA>)   {  
      chomp;  
      if   (   $string   eq   $_   )   {  
   
          print   $a;  
   
          $ifsend   =   1;  
          return;  
      }  
  }  
  close   DATA;  
  print   "usr   error!"   unless   $ifsend;  
  在ie中输入  
  http://www.luosoft.com/cig-bin?luojianbin  
  提示   ErrorTop

10 楼peifang(配方)回复于 2001-12-21 11:31:00 得分 0

我要帮你,你又不让,非要去花800元买,真是faint。如果对cgi得特性不熟悉,一点点拼凑出来的代码在cgi中会有相当多的漏洞,别人很容易就能得到你那个免费升级。Top

11 楼liaokuo(辽阔)回复于 2001-12-21 11:31:44 得分 0

你帮我,没什么条件吗?Top

12 楼liaokuo(辽阔)回复于 2001-12-21 11:40:29 得分 0

To   netken(小肯)  
  很抱歉,有2个问题  
  A,我希望用http://www.luosoft.com/cgi-bin/iparmor.cgi?234234234  
  的形式来调用cig  
  B.我没有pass.txt,而用print   "http://www.luosoft.com/virus.300"  
  格式来输出  
   
  其实我是用iparmor.exe   去读http://www.luosoft.com/cgi-bin/iparmor.cgi?234234234  
  的,我不需要任何html文件  
   
  成功后,立即付款,绝不失言Top

13 楼liaokuo(辽阔)回复于 2001-12-21 11:43:03 得分 0

我的name.txt是用   win   下的写字板产生的  
  有没有问题?Top

14 楼peifang(配方)回复于 2001-12-21 12:01:42 得分 0

你用iparmor.exe读取页面并不能会使安全性更高。因为完全可以用sniffer抓下来看你读取得是哪个文件。cgi中有很多安全知识的,恐怕你不会很了解。  
  name.txt用写字板产生有点问题,但是不是主要问题,可以忽略。Top

15 楼liaokuo(辽阔)回复于 2001-12-21 12:04:43 得分 0

帮我把下面问题解决,安全性以后再说  
  我想让ie输入  
  http://www.luosoft.com/cig-bin?luojianbin  
  来和这个cgi交流  
   
  To   peifang(配方)   
  你想得到什么?  
   
  #!/usr/bin/perl  
  read(STDIN,$string,$ENV{'CONTENT_LENGTH'});  
  print   "Content-type:text/html\n\n";  
  $a="http://www.luosoft.com/virus.300";  
  print   "usr   error"   if   length($string)   >   1024;  
  print   "usr   error   !"   unless   $string;  
  $string   =~   s/%([a-fA-F0-9]{2})/pack("C",hex($1))/ge;  
  open(DATA,"<name.txt");  
  while   (<DATA>)   {  
      chomp;  
      if   (   $string   eq   $_   )   {  
   
          print   $a;  
   
          $ifsend   =   1;  
          return;  
      }  
  }  
  close   DATA;  
  print   "usr   error!"   unless   $ifsend;  
  在ie中输入  
  http://www.luosoft.com/cig-bin?luojianbin  
  提示   Error   Top

16 楼liaokuo(辽阔)回复于 2001-12-21 12:07:11 得分 0

my   oicq:192285Top

17 楼netken(小肯)回复于 2001-12-21 19:43:14 得分 0

把   read(...)   那行改成  
  $string   =   $ENV{'QUERY_STRING'};  
  就可以了;)Top

相关问题

  • 求购一段程序
  • 求购NT服务器程序源码
  • 急需源程序!!高分求购!!
  • 高分求购一个源程序
  • 高分求购:xml的分页程序
  • 求购界面程序一个!简单!
  • 100分 求购pb8的安装程序。
  • 求购ActiveSkin V3.52和它的Crack程序、active splash和它的Crack程序
  • 公司求购源程序,价钱你来定.
  • 高分求购程序!!!!行了绝对给分!

关键词

  • cgi
  • 安全性
  • 文件
  • 用户
  • luosoft
  • ifsend
  • iparmor
  • f0
  • perlread
  • unless

得分解答快速导航

  • 帖主:liaokuo
  • netken

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo