﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-IT爱好小子01-文章分类-黑客与安全</title><link>http://www.cnitblog.com/zhand/category/7963.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 05 Oct 2011 18:28:04 GMT</lastBuildDate><pubDate>Wed, 05 Oct 2011 18:28:04 GMT</pubDate><ttl>60</ttl><item><title>网络上最基本DOS命令</title><link>http://www.cnitblog.com/zhand/articles/53247.html</link><dc:creator>IT爱好者01</dc:creator><author>IT爱好者01</author><pubDate>Tue, 30 Dec 2008 06:35:00 GMT</pubDate><guid>http://www.cnitblog.com/zhand/articles/53247.html</guid><wfw:comment>http://www.cnitblog.com/zhand/comments/53247.html</wfw:comment><comments>http://www.cnitblog.com/zhand/articles/53247.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zhand/comments/commentRss/53247.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zhand/services/trackbacks/53247.html</trackback:ping><description><![CDATA[<p>令行简介</p>
<p>命令行就是在Windows操作系统中打开DOS窗口，以字符串的形式执行Windows管理程序。</p>
<p>在这里，先解释什么是DOS？</p>
<p>DOS——Disk Operation System 磁盘操作系统</p>
<p>目前我们常用的操作系统有windows 9x/Me,NT,2000等，都是可视化的界面。在这些系统之前的人们使用的操作系统是DOS系统。DOS系统目前已经没有什么人使用了，但是dos命令却依然存在于我们使用的windows系统之中。大部分的DOS命令都已经在Windows里变成了可视化的界面，但是有一些高级的DOS命令还是要在DOS环境下来执行。所以学习命令行对于我们熟练操作Windows系统是很有必要的。</p>
<p>不同的操作系统要用不同的命令进入命令行界面。</p>
<p>在Win9x/Me的开始菜单中的运行程序中键入"command"命令，可进入命令行界面。</p>
<p>在Win2000/NT的开始菜单中的运行程序中键入"cmd"命令，可进入命令行界面。</p>
<p>下面我用讲到的DOS命令都可以在Windows Me操作系统中执行。</p>
<p>那么，我们如何进入命令行窗口？</p>
<p>开始——〉运行——〉键入command命令——〉回车二.符号约定</p>
<p>为了便于说明格式，这里我们使用了一些符号约定，它们是通用的：</p>
<p>C:<br>盘符</p>
<p>Path<br>路径</p>
<p>Filename<br>文件名</p>
<p>.ext<br>扩展名</p>
<p>Filespec<br>文件标识符</p>
<p>[ ]<br>方括号中的项目是可选项，用户可以根根据需要不输入这些内容</p>
<p>{ }<br>大括号表示其中的项目必选一项</p>
<p>|<br>竖线表示两侧的内容可取其一</p>
<p>&#8230;<br>表示可重复项</p>
<p>&nbsp;</p>
<p>命令行的输入方法</p>
<p>在DOS窗口中通过输入英文命令加回车键这种方式来执行程序。</p>
<p>四.内部命令和外部命令</p>
<p>命令行程序分为内部命令和外部命令，内部命令是随command.com装入内存的，而外部命令是一条一条单独的可执行文件。</p>
<p>内部命令都集中在根目录下的command.com文件里，电脑每次启动时都会将这个文件读入内存，也就是说在电脑运行时，这些内部命令都驻留在内存中，用dir命令是看不到这些内部命令的。 </p>
<p>外部命令都是以一个个独立的文件存放在磁盘上的，它们都是以com和exe为后缀的文件，它们并不常驻内存，只有在电脑需要时，才会被调入内存。<br>五.常用命令</p>
<p>DOS命令总共大约有一百个（包括文本编辑、查杀病毒、配置文件、批处理等），我们这里详细介绍二十个常用的DOS命令。</p>
<p>先介绍一下通配符的概念。</p>
<p>通配符*和？</p>
<p>*表示一个字符串</p>
<p>？只代表一个字符</p>
<p>注意通配符只能通配文件名或扩展名，不能全都表示。例如我们要查找以字母y开头的所有文件，可以输入以下命令：dir y*.*；如果要查找所有扩展名为exe的文件，可以用dir .exe。？只代表一个字符，例如我要查找第二个字母为s的所有文件，可以输入：DIR ?s*.*。</p>
<p>1. dir</p>
<p>dir是英文单词directory(目录）的缩写，主要用来显示一个目录下的文件和子目录。</p>
<p>[功能] 显示指定磁盘、目录中的文件和子目录信息，包括文件及子目录所在磁盘的卷标、文件与子目录的名称、每个文件的大小、文件及目录建立的日期时间，以及文件子目录的个数、所占用总字节数以及磁盘上的剩余总空间等信息。</p>
<p>[格式] dir [C:][path][filename][.ext][/o][/s][/p][/w][/a]</p>
<p>[说明] dir是DOS命令中最常用的一个。斜杠表示后面的内容是参数。DOS参数最常用的是以下四个：</p>
<p>参 数<br>意 义</p>
<p>/p<br>显示信息满一屏时，暂停显示，按任意键后显示下一屏</p>
<p>/o<br>排序显示。o后面可以接不同意义的字母</p>
<p>/w<br>只显示文件名目录名，每行五个文件名。即宽行显示</p>
<p>/s<br>将目录及子目录的全部目录文件都显示<br>2. md </p>
<p>md是英文make directory（创建目录）的缩写<br>[功能] 创建一个子目录<br>[格式] md [C:]path</p>
<p>3. cd<br>cd是英文change directory(改变目录）的缩写<br>[功能] 改变或显示当前目录<br>[格式] cd [C:][path]<br>[说明] 路径可以使用绝对路径和相对路径两种。如果只有cd而没有参数，则只显示当前路径。注意：子目录中一定有两个&#8220;特殊目录&#8221;，即&#8220;.&#8221;&#8220;..&#8221;，其中一点表示当前目录，两点表示上一层目录。从简单实用的角度来看，我们只要学会逐层进入（cd 下一层某目录名），和逐层退出（cd..）就可以解决所有问题。当然也可以用绝对路径的办法。</p>
<p>4. rd<br>remove directory--删除目录<br>[功能] 删除空子目录<br>[格式] rd [d:]path<br>[说明] rd是专门删除空子目录的命令。注意两条：一是不能删除非空目录；二是不能删除当前目录。</p>
<p>&nbsp;</p>
<p>5. copy<br>copy在英文中是复制的意思<br>[功能] 复制一个或一组文件到指定的磁盘或目录中<br>[格式] copy [C:][path][filename.ext] [C:][path]filename.ext<br>[说明] 复制文件命令基本用法是：&#8220;复制 源文件名 目标文件名&#8221;。如果只写目标路径而不写目标文件名，表示同名复制；否则称为换名复制。注意换名复制一般不要更改文件扩展名。<br>[举例] 将C:\purple目录的所有文件复制到软盘，可以打如下命令，请注意当前盘与当前路径不同：<br>C:\&gt;copy purple A:\<br>如果目标盘上已有同名文件，会出现如下提示，&#8220;Overwrite xxxx(Yes/No/All)&#8221;此时回答Y则覆盖当前文件，N则保留，A则覆盖此后的所有文件而不再提问。</p>
<p>6. del<br>del是英文delete（删除）的缩写<br>[功能] 删除指定磁盘、目录中的一个或一组文件<br>[格式] del [C:][path]filename.ext<br>[说明] 这个命令应小心使用。一旦被删除，将不易恢复。同样可以采用通配符为删除一类文件。当利用*.*时，为了安全将给出警告，确定方进行删除工作。删除过程如没有信息提示，表示已正确删除。<br>注意这个命令不能删除具有只读、隐含、系统属性的文件；如果指定文件不存在，则出现&#8220;File not found&#8221;的提示；DOS对误删除的文件可以用UNDELETE外部命令恢复；它只能删文件，不能删目录。</p>
<p>7. ren<br>ren是英文rename（重新命名）的简写<br>[功能] 对指定磁盘、目录中的一个文件或一组文件更改名称<br>[格式] ren [C:][path]filename1[.ext] filename2[.ext]<br>[说明] 改名操作只限于某个文件某组文件的名称，它不会更改文件所在的目录。如果使用了通配符，则对一批文件进行更名。</p>
<p>8. type<br>[功能] 在屏幕上显示文本文件内容命令<br>[格式] type [C:][path]filename.ext<br>[说明] type命令用来在屏幕上快速、简便地显示文本文件的内容，扩展名为TXT的文件是文本文件。如果用这个命令显示扩展名为EXE或COM等其它文件，输出的结果往往是一些乱七八糟的符号并伴有无规则的响铃声，有时甚至会出现死机现象。</p>
<p>9. format<br>[功能] 磁盘格式化<br>[格式] [C:][path]format drive:[/S]<br>[说明] 厂家制造的各种磁盘可用来存储各种操作系统下的文件。不同操作系统的磁盘格式一般是不相同的，是不通用的。format命令就是使一个新的磁盘可以被DOS操作系统识别，即可存储DOS文件。<br>这个命令对磁盘的格式化过程，实际上是用DOS规定的信息存储格式对磁盘进行规划的过程。格式化磁盘时，要清除磁盘上已经存在的所有数据，在磁盘上写上引导记录，划分出文件分配表和根目录，同时，它还要找出磁盘上的所有坏扇区并作上不可使用的标记。命令参数我们这里只列出了一个：/S。当使用了这个参数后，磁盘格式化并装入操作系统文件，使之变成引导盘。相当于format后再进行下一命令：SYS。</p>
<p>10. discopy<br>diskcopy，翻译成中文就是磁盘复制<br>[功能] 复制出一个和原来磁盘内容一模一样的磁盘<br>[格式] diskcopy　源驱动器名　目的驱动器名<br>[说明] 它的主要用途就是用来备份。比如我们的电脑在刚买来时，会随机附带一些设备驱动程序磁盘，这些驱动程序在以后都有可能用到，为防止这些磁盘的损坏，一定要将它们都备份一套，这时，使用diskcopy命令是比较快捷和方便的。<br>11. deltree </p>
<p>[功能] 删除目录树<br>[格式] [C:][path]DELTREE [C1:][path1] [[C2:][path2] [&#8230;]]<br>[说明] 这个命令将整个指定目录树全部消灭，而不管它是否是只读、隐藏与否。使用应特别小心。它是一个危险命令。</p>
<p>12. mem<br>mem是memory的缩写<br>[功能] 该命令用来查看你的计算机内存有多少，以及内存的使用情况。 <br>[格式] 直接键入mem命令</p>
<p>13. chkdsk<br>chkdsk是check disk的缩写。 <br>[功能] 用来检查你的磁盘的使用情况。<br>[格式] chkdsk　磁盘名<br>[说明] 例如要检查A盘使用情况，就输入chkdsk　A: ，检查c盘使用情况，就输入chkdsk　C: ，如果直接输入chkdsk，就检查当前磁盘的使用情况。</p>
<p>14. sys<br>[功能] 传递系统文件命令。将DOS的两个隐含的系统IO.SYS和MSDOS.SYS传送到目标磁盘的特定位置上，并将COMMAND.COM文件复制过去。完成后，目标盘成为DOS的启动盘。<br>[格式] [C:][path]SYS [C1:][path] d2:<br>[说明] 由于这几个文件需要复制到特定位置上，所以用COPY命令完成的复制未必能够启动机器。能过SYS命令，DOS可以将目标盘已占据特定位置的文件移动，并将系统文件复制到相应位置上。参数C1:path用来指明系统文件所在目录。如不指明，则缺省为当前盘的当前目录。所以这个命令一般要在源盘的根目录进行。<br>15. pass</p>
<p>[功能] 设定DOS寻找.COM、.EXE、.BAT文件的所在目录<br>[格式] path=[[drive:]path[;&#8230;]]或path<br>[说明] 只打path没有参数时，只显示环境变量内容。有参数时，重新设置path变量。在没有指定path环境变量时，用户发出的命令，DOS首先判断其是否为内部命令，再查找当前目录中是否有主文件名是该命令的可执行文件，如果均不是，则显示信息&#8220;Bad command or filename&#8221;。如果发出了指定路径的命令，则在指定径中依次查找，仍找不到则出现上述提示。<br>16. edit<br>[功能] edit命令是一个简单的编辑软件，我们经常用它来编辑一些程序和批处理文件。<br>17. cls<br>[功能] 清除显示器屏幕上的内容，使DOS提示符到屏幕左上角。<br>[格式] cls<br>18. time<br>[功能] 显示和设置DOS的系统时间<br>[格式] time [hh[:mm[:ss[.cc]]]<br>19. date<br>[功能] 显示和设置DOS的系统日期<br>[格式] date [MM-DD-YY]<br>20. ver<br>[功能] 显示正在运行的DOS系统版本号<br>[格式] ver</p>
<p><br>更多的DOS命令 </p>
<p>命令 功能 <br>attrib　　　 设置文件属性 <br>ctty　　　　 改变控制设备 <br>defrag　　　 磁盘碎片整理 <br>doskey　　　 调用和建立DOS宏命令 <br>debug 　　　　 程序调试命令 <br>emm386　　　 扩展内存管理 <br>fc　　　　 文件比较 <br>fdisk 　　　 硬盘分区 <br>lh/loadhigh　　 将程序装入高端内存 <br>move 　　　 移动文件，改目录名 <br>more　　　　 分屏显示 <br>prompt　　　 设置提示符 <br>set 　　　　 设置环境变量 <br>smartdrv　　　 设置磁盘加速器 <br>setver 　　 　 设置版本 <br>subst　　　　 路径替换 <br>vol　　　　 显示指定的磁盘卷标号 <br>xcopy 　　　 拷贝目录和文件 </p>
<p><br>大家如果感兴趣的话，不妨自己在DOS窗口中打打这些命令试试看。:) </p>
<p>虽然说如今的Windows系统都是可视化的操作，但有的时候你想更好的使用Windows操作系统，熟悉这些Windows命令行是非常必要的一件事。 </p>
<img src ="http://www.cnitblog.com/zhand/aggbug/53247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zhand/" target="_blank">IT爱好者01</a> 2008-12-30 14:35 <a href="http://www.cnitblog.com/zhand/articles/53247.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>@入侵网站服务器@</title><link>http://www.cnitblog.com/zhand/articles/53246.html</link><dc:creator>IT爱好者01</dc:creator><author>IT爱好者01</author><pubDate>Tue, 30 Dec 2008 06:34:00 GMT</pubDate><guid>http://www.cnitblog.com/zhand/articles/53246.html</guid><wfw:comment>http://www.cnitblog.com/zhand/comments/53246.html</wfw:comment><comments>http://www.cnitblog.com/zhand/articles/53246.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zhand/comments/commentRss/53246.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zhand/services/trackbacks/53246.html</trackback:ping><description><![CDATA[<p>随着网络的发展,人们的安全意识提高了.但是还存在不足的.尽管为服务器设计软件的软件工程师们想方设法提高系统的安全性，然而由于系统管理员的水平参差不齐或安全意识底下，往往给黑客提供了入侵的机会。&nbsp;&nbsp; 还是一个技术问题.</p>
<p>其实每一个黑客都有自己独到的方法。笔者对于入侵网站服务器的资料收集了很多，但是因为实际情况的</p>
<p>不同，往往造成许多方法的失效；由此可见，每一个网站的情况都不同，需要入侵者区分对待分析一部分的主页被黑的事例可以发现使用入侵者最热衷于入侵Web服务器和FTP服务器，因为相对来说这</p>
<p>是最简单的两种途径。在假设读者对U NIX系统和WEB SERVER的知识不曾了解的情况下，笔者给出下面的</p>
<p>步骤。&nbsp; </p>
<p>一、了解要入侵的系统&nbsp; <br>现在网络上用作服务器的操作系统以UNIX和Linux为主流，如果要入侵这些系统则必须对它们有一个了解</p>
<p>。&nbsp; <br>大部份在 DOS 上使用的指令在 UNIX 及 Linux 上都有对应的指令（因为早期的dos开发借鉴了UNIX），</p>
<p>以下列出在使用 SHELL帐号 (shell account)时最主要的一些指令对应的dos指令：&nbsp; <br>HELP=HELP&nbsp; <br>CP=COPY&nbsp; <br>MV= MOVE&nbsp; <br>LS= DIR&nbsp; <br>RM =DEL&nbsp; <br>CD=CD&nbsp; <br>要看谁同時也在该系統上用户可以键入 WHO 指令，要知道系統上某一位使用者的资料, 可以鍵入 FINGER</p>
<p>。这些基本的 UNIX 指令可以让你得到你正使用系統的信息。&nbsp; </p>
<p>二、破解密码&nbsp; <br>在UNIX操作系统中, 所有系统使用者的密码都存放在一个文件中，这个文件存放在 /etc这个目录下面, </p>
<p>它的文件名就叫做passwd。如果读者认为所要做的工作就是拿到这个文件按照上面的密码登陆系统的话那</p>
<p>就大错特错了。UNIX和Linux下的p asswd文件是特殊的，在它里面所有帐号的密码都已经经过重新编译的</p>
<p>（也就是前面说过的DES加密方法），而且这些密码所进行的都是单向编译( one-way encrypted)，也就</p>
<p>是说没有办法可以反编译它的（decrypt)。&nbsp; <br>但是还是有些程序可以得到这些原始的密码。笔者向大家推荐一个破解密码的程序&#8220;Cracker Jack&#8221;，它</p>
<p>也是一个使用字典来对字典文件进行穷举的软件。首先&#8220;Cracker Jack&#8221;会把字典文件里的每一个值进行</p>
<p>编译，然后将编译过的值与密码文件中的内容进行比较，得到相同的结果就会报告对应的未经编译密码。</p>
<p>这个软件巧妙的绕过密码无法反编译的限制，使用穷举比较获得密码。使用这种原理获得密码的工具有许</p>
<p>多，读者可以到网络上去搜寻一下。&nbsp; </p>
<p>三、获得密码文件&nbsp; <br>这是最困难的一部分。很明显，如果管理员有那么一个密码文件的话他当然不会放在那里让其它人舒舒服</p>
<p>服的拿到的。入侵者必须找到好方法以不进入系统的方式拿到密码文件。这里笔者向大家介绍两种方法，</p>
<p>大家可以试试，有可能会成功。&nbsp; <br>1.tc目录在FTP服务上不会被锁住，入侵可以用FTP client程序使用anoymously匿名帐号登陆，然后检查</p>
<p>一下/etc/passwd是否为匿名设置了被读取的权限，如果有马上备份下来使用软件解码。&nbsp; <br>2.些系统中，/cgi-bin目录下会有个叫PHF的文件，如果准备入侵的服务器上有的话那就要方便的多了。</p>
<p>因为PHF允许使用者对网站系统里的文件作远端读取，以此为据，用户可以使用浏览器抓取p asswd文件，</p>
<p>只要在浏览器地址栏中键入<a href="http://xxx.xxx.xxx/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd">URL:http://xxx.xxx.xxx/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd</a></p>
<p>，其中xxx.xxx.xxx 是要入侵的网站名。&nbsp; <br>如果这两种方法都行不通的话，那入侵者必须实施其它的办法了。&nbsp; <br>在有些情况下入侵者找到的密码文件的第二部分是X、!或者*，那么说明该密码文件已经被锁死，这是系</p>
<p>统管理员使用的加强安全的手段之一。但是将密码文件完全隐藏起来的情况是不太有的。通常情况下都会</p>
<p>有未经锁死的密码文件备份在系统中，这样入侵者就可以加以利用，比如：入侵者通常会寻找/ </p>
<p>etc/shadow目录或类似的目录，看能否找到密码文件的备份。&nbsp; </p>
<p>四、建立自己的shell帐号&nbsp; <br>经过二、三两个关键的步骤入侵者终于拿到了关键的密码文件，并且破解出了密码。现在可以运行TELNET</p>
<p>程序，登陆主机了。当连上服务器时服务器会向你显示自己的一些信息，通常是U NIX、linux、 aix、 </p>
<p>irix、 ultrix、 bsd 甚至是 DOS 和VAX/Vms；然后是Login提示符出现在屏幕上，这时键入得来的帐号</p>
<p>和密码即可登陆系统。此时入侵者就可以利用自己的UNIX知识做自己喜欢做的事了。&nbsp; </p>
<p>最后对一份密码文件做一个分析，该文件内容如下：&nbsp; <br>root:1234aaab:0:1:Operator:/:/bin/csh&nbsp; <br>nobody:*:12345:12345::/:&nbsp; <br>daemon:*:1:1::/:&nbsp; <br>sys:*:2:2::/:/bin/csh&nbsp; <br>sun:123456hhh:0:1:Operator:/:/bin/csh&nbsp; <br>bin:*:3:3::/bin:&nbsp; <br>uucp:*:4:8::/var/spool/uucppublic:&nbsp; <br><a href="news:*:6:6::/var/spool/news:/bin/csh">news:*:6:6::/var/spool/news:/bin/csh</a>&nbsp; <br>audit:*:9:9::/etc/security/audit:/bin/csh&nbsp; <br>sync::1:1::/:/bin/sync&nbsp; <br>sysdiag:*:0:1:Old System&nbsp; <br>Diagnostic:/usr/diag/sysdiag:/usr/diag/sysdiag/sysdiag&nbsp; <br>sundiag:*:0:1:System&nbsp; <br>Diagnostic:/usr/diag/sundiag:/usr/diag/sundiag/sundiag&nbsp; <br>tom:456lll45uu:100:20::/home/tom:/bin/csh&nbsp; <br>john:456fff76Sl:101:20:john:/home/john:/bin/csh&nbsp; <br>henry:AusTs45Yus:102:20:henry:/home/henry:/bin/csh&nbsp; <br>harry:SyduSrd5sY:103:20:harry:/home/harry:/bin/csh&nbsp; <br>steven:GEs45Yds5Ry:104:20:steven:/home/steven:/bin/csh&nbsp; <br>+::0:0:::&nbsp; </p>
<p>其中以&#8220;：&#8221;分成几个栏位，比如： tom:456lll45uu:100:20:tomchang:/home/tom:/bin/csh的含义是： </p>
<p><br>User Name: tom&nbsp; <br>Password: 456lll45uu&nbsp; <br>User No: 100&nbsp; <br>Group No: 20&nbsp; <br>Real Name: tom chang&nbsp; <br>Home Dir: /home/tom&nbsp; <br>Shell: /bin/csh&nbsp; </p>
<p>读者可以发现以上诸如nobody、 daemon、 sys、 bin、 uucp、 news、 audit、 sysdiag、sundiag 等</p>
<p>的密码栏位都是*，也就是说这些帐号的密码都已锁死，无法直接利用。&nbsp; </p>
<p>值得注意的是，许多系统在首次安装后会有一些缺省帐号和密码，这给投机主义的黑客带来方便，以下就</p>
<p>是一些UNIX下缺省的帐号和密码。&nbsp; <br>ACCOUNT PASSWORD&nbsp; <br>----------- ----------------&nbsp; <br>root root&nbsp; <br>sys sys / system / bin&nbsp; <br>bin sys / bin&nbsp; <br>mountfsys mountfsys&nbsp; <br>adm adm&nbsp; <br>uucp uucp&nbsp; <br>nuucp anon&nbsp; <br>anon anon&nbsp; <br>user user&nbsp; <br>games games&nbsp; <br>install install&nbsp; <br>reboot 供&#8220;command login&#8221;使用&nbsp; <br>demo demo&nbsp; <br>umountfsys umountfsys&nbsp; <br>sync sync&nbsp; <br>admin admin&nbsp; <br>guest guest&nbsp; <br>daemon daemon&nbsp; </p>
<p>其中 root mountfsys umountfsys install (有時候 sync也是) 等都是root级别的帐号, 也就是拥有了</p>
<p>sysop (系统管理员)的权限。&nbsp; </p>
<p>最后有必要介绍一下UNIX的日志文件。很多入侵者不希望侵入的电脑追踪他们，那到底如何做那。&nbsp; <br>系统管理员主要依靠系统的LOG，即我们时常所说的日志文件来获得入侵的痕迹及入侵者进来的IP和其他</p>
<p>信息。当然也有些管理员使用第三方工具来记录侵入电脑的信息，这里主要讲的是一般U NIX系统里记录</p>
<p>入侵踪迹的文件。&nbsp; </p>
<p>UNIX系统有多个版本，各个系统有不同的LOG文件，但大多数都应该有差不多的存放位置，最普通的位置</p>
<p>就是下面的这几个：&nbsp; <br>/usr/adm，早期版本的UNIX；&nbsp; <br>/var/adm，新一点的版本使用这个位置；&nbsp; <br>/var/log，一些版本的Solaris，Linux BSD，Free BSD使用这个位置；&nbsp; <br>/etc，大多数UNIX版本把utmp放在此处，一些也把wtmp放在这里,这也是 syslog.conf的位置。&nbsp; </p>
<p>下面列举一些文件的功能，当然他们也根据入侵的系统不同而不同。&nbsp; <br>acct 或 pacct，记录每个用户使用的命令记录；&nbsp; <br>access_log，主要使用来服务器运行了NCSA HTTPD，这个记录文件会有什么站点连接过你的服务器；&nbsp; <br>aculog，保存着你拨出去的MODEMS记录；&nbsp; <br>lastlog，记录了用户最近的登陆记录和每个用户的最初目的地，有时是最后不成功登陆的记录；&nbsp; <br>loginlog，记录一些不正常的登陆记录；&nbsp; <br>messages，记录输出到系统控制台的记录，另外的信息由syslog来生成；&nbsp; <br>security，记录一些使用UUCP系统企图进入限制范围的事例；&nbsp; <br>sulog，记录使用su命令的记录；&nbsp; <br>utmp，记录当前登录到系统中的所有用户，这个文件伴随着用户进入和离开系统而不断变化；&nbsp; <br>utmpx，UTMP的扩展；&nbsp; <br>wtmp，记录用户登录和退出事件；&nbsp; <br>syslog，最重要的日志文件，使用syslogd守护程序来获得。&nbsp; <br>日志信息：&nbsp; <br>/dev/log，一个UNIX域套接字，接受在本地机器上运行的进程所产生的消息；&nbsp; <br>/dev/klog，一个从UNIX内核接受消息的设备；&nbsp; <br>514端口，一个INTERNET套接字，接受其他机器通过UDP产生的syslog消息；&nbsp; <br>Uucp，记录的UUCP的信息，可以被本地UUCP活动更新，也可有远程站点发起的动作修改，信息包括发出和</p>
<p>接受的呼叫，发出的请求，发送者，发送时间和发送主机；&nbsp; <br>lpd-errs，处理打印机故障信息的日志；&nbsp; <br>ftp日志，执行带-l选项的ftpd能够获得记录功能；&nbsp; <br>httpd日志，HTTPD服务器在日志中记录每一个WEB访问记录；&nbsp; <br>history日志，这个文件保存了用户最近输入命令的记录；&nbsp; <br>vold.log，记录使用外接媒介时遇到的错误记录。 <a href="http://www.jz5u.com/">www.jz5u.com</a></p>
<p>&nbsp;&nbsp; 特别声明：请勿用此文所介绍的方法，做违法之事，否则后果自负</p>
<p>&nbsp;</p>
<img src ="http://www.cnitblog.com/zhand/aggbug/53246.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zhand/" target="_blank">IT爱好者01</a> 2008-12-30 14:34 <a href="http://www.cnitblog.com/zhand/articles/53246.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>入侵asp网站漏洞汇总（2）</title><link>http://www.cnitblog.com/zhand/articles/53245.html</link><dc:creator>IT爱好者01</dc:creator><author>IT爱好者01</author><pubDate>Tue, 30 Dec 2008 06:29:00 GMT</pubDate><guid>http://www.cnitblog.com/zhand/articles/53245.html</guid><wfw:comment>http://www.cnitblog.com/zhand/comments/53245.html</wfw:comment><comments>http://www.cnitblog.com/zhand/articles/53245.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zhand/comments/commentRss/53245.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zhand/services/trackbacks/53245.html</trackback:ping><description><![CDATA[<div class=date>
<table style="TABLE-LAYOUT: fixed">
    <tbody>
        <tr>
            <td>
            <div class=cnt id=blog_text>
            <div class=t_msgfont>2。XSS漏洞（跨站脚本攻击漏洞）这个吗？是一个很难防范的漏洞。美国安全专家曾经讲过这个漏洞是无法防止的。其实最普遍是我们常见的<br><br>COOKIES欺骗这都是跨站漏洞的。大家知道有很多这样的语句。跨站任意执行的代码。如果寻找到的XSS漏洞可以任意执行任何的Javascript脚<br><br>本,那安全性也是不容忽视的.通过Javascript脚本其实也可以做一些恶意的攻击,甚至可以获得一些WEB<br>程序的源代码,当然这个要看大家对Javascript脚本的熟悉程度。其实这个漏洞呀我不是很内行.<br>3。上传 漏洞；<br>上传漏洞:其实那就是个将我们的木马传到服务器内.然后那我们进行控制,但是没有几个网站管理员这么傻,让你直接上传的.哈哈<br>不过那我们可以想办法的.<br>看下面的代码:<br><br>sub upload_0()<br>set upload=new UpFile_Class ''建立上传对象<br>upload.GetDate (int(Forum_Setting(56))*1024)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '取得上传数据,不限大小<br>iCount=0<br><br>if upload.err &gt; 0 then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select case upload.err<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write "请先选择你要上传的文件　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 2<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write "图片大小超过了限制 "&amp;Forum_Setting(56)&amp;"K　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end select<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit sub<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>formPath=upload.form("filepath")<br>''在目录后加(/)<br>if right(formPath,1)&lt;&gt;"/" then formPath=formPath&amp;"/" <br><br>for each formName in upload.file ''列出所有上传了的文件<br>set file=upload.file(formName)&nbsp;&nbsp;&nbsp;&nbsp; ''生成一个文件对象<br>if file.filesize&lt;100 then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.write "请先选择你要上传的图片　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.end<br>end if<br><br>fileExt=lcase(file.FileExt)<br>if CheckFileExt(fileEXT)=false then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.write "文件格式不正确　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.end<br>end if<br><br>randomize<br>ranNum=int(90000*rnd)+10000<br>filename=formPath&amp;year(now)&amp;month(now)&amp;day(now)&amp;hour(now)&amp;minute(now)&amp;second(now)&amp;ranNum&amp;"."&amp;fileExt<br>if file.FileSize&gt;0 then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ''如果 FileSize &gt; 0 说明有文件数据<br>&nbsp;&nbsp;&nbsp;&nbsp; file.SaveToFile Server.mappath(filename)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ''保存文件<br>'&nbsp;&nbsp;&nbsp;&nbsp; response.write file.FilePath&amp;file.FileName&amp;" ("&amp;file.FileSize&amp;") =&gt; "&amp;formPath&amp;File.FileName&amp;" 成功!&lt;br&gt;"<br>response.write "&lt;script&gt;parent.document.forms[0].myface.value='"&amp;FileName&amp;"'&lt;/script&gt;"<br>&nbsp;&nbsp;&nbsp;&nbsp; iCount=iCount+1<br>end if<br>set file=nothing<br>next<br>set upload=nothing<br>session("upface")="done"<br>Htmend iCount&amp;" 个文件上传结束!"<br><br>end if<br>end sub<br><br>在上面代码中可以看到这样一句:<br>filename=formPath&amp;year(now)&amp;month(now)&amp;day(now)&amp;hour(now)&amp;minute(now)&amp;second(now)&amp;ranNum&amp;"."&amp;fileExt<br>filename是它保存的文件名,它是依照上传时间来命名的,最后扩展名是表单中提交出来的文件的扩展名.程序中对提交文件的类型做了限制,显<br><br>然想直接上传ASP文件是不可行的.(这个是必须的)但是我们来看一下做为后辍的依据从哪里来的呢?我们可以在reg_upload.asp中找到这样的代<br><br>码:<br>&lt;form name="form" method="post" action="upfile.asp" enctype="multipart/form-data" &gt;<br>&lt;input type="hidden" name="filepath" value="uploadFace"&gt;<br>&lt;input type="hidden" name="act" value="upload"&gt;<br>&lt;input type="file" name="file1"&gt;<br>&lt;input type="hidden" name="fname"&gt;<br>&lt;input type="submit" name="Submit" value="上传" onclick="fname.value=file1.value,parent.document.forms<br><br>[0].Submit.disabled=true,<br>parent.document.forms[0].Submit2.disabled=true;"&gt;<br>&lt;/form&gt;<br>这样,我们知道了,程序是提取file1表单和fname表单中的值来做判断的.也就是说直接从页面递交我们的ASP文件<br>也是行不通了,但是,如果是我们自己构造数据包的话就不一样了.我们的方法就是自已构造数据包来达到欺骗的目的.<br>将提交的file1表单和fname表值改成合法的文件名称.这样就可以绕过文件类型的检测了.<br>我们的目的是要让我们上传的文件名改成ASP,这样我们才可以利用.这个句子是经典的<br>formPath&amp;year(now)&amp;month(now)&amp;day(now)&amp;hour(now)&amp;minute(now)&amp;second(now)&amp;ranNum&amp;"."&amp;fileExt<br>这句话将一段字符串合并起来.我们能改的就是formPath参数.在计算机中检测字符串的关键就是看是否碰到'\0'字符,<br>如果是,则认为字符串结束了.也就是说我们在构造上传文件保存路径时,只要欺骗计算机,让他认为合法的就好了.<br>例如:"uploadface\zwell.asp"<br>这样的路径参数已经OVER,这样,后面时间字符我们都删除,从而达到直接将文件保存为我们文件名的目的.<br>因些,我们要做的是在构造的数据包中,将表单中的filepath改成类似uploadface\zwell.asp'\0'的字符串然后发送出去就行了.<br>哈哈很简单的哈哈.例如:<br>自己的小经验:<br>有些网站没有过滤 CER文件.CER文件支持ASP网站.我们可以用ＣＥＲ这个文件进行上传。有些网站没有过滤CER文件。还有有些文件服务器过滤<br><br>ＡＳＰ木马时，总是查看前几个文件。例如：我们木马文件是1.asp这很明显一定被过滤出来。<br>但是我们这样1.a.asP这样就不会被过滤了。但是凡是都有例外。哈哈是吧!<br>希望大家给些意见吧！<br>4。本地上传<br>这个方法其实可能有人问我什么是本地上传，<br>本地上传是原代码可以在浏览器上看见的。这是<br>如果看不到那么就是服务器上传。<br>那么怎么应用那<br>接下来也是我要说的：<br>例如：我自己也想不出来一个表达的方式.<br>假如一个网页我们发现了一个可以利用的界面,但是那,原代码不存在过滤失误问题.我们该怎么办那.<br>哈哈当然有方法:<br>那么我们首先：把这个HTML文件保留下来。原代码保存下来.<br>那些代码不是不利于我们进行渗透吗?<br>我们把他改正以下.<br>改成利于我们的代码,我们直接可以利用的代码.<br>哈哈就是这么简单的.这个是本地上传的好处.不过那建议大家用腾讯的浏览器.他可以随意看代码.因为有些网站限制了.但是腾讯的浏览器可以<br><br>显示的.之后那我们还要构成完整.我们还要抓包的.<br>然后我们用抓包工具来进行抓包，我喜欢用WSE这个软件来进行抓包.<br>可能有的朋友这么问，抓什么？<br>大家看他这个网页应该是可以传递的往哪里传这是我们抓包的东西.<br>我们可以用WSE来抓包的抓到之后,将我们抓到东西。放在ACTION后面就好了。<br>例如:action<img src="http://images.5d6d.com/dz60/smilies/default/sad.gif" border=0 smilieid="2">我们抓到的传到的网站)之后大家都会了吧！<br></div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
</div>
<img src ="http://www.cnitblog.com/zhand/aggbug/53245.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zhand/" target="_blank">IT爱好者01</a> 2008-12-30 14:29 <a href="http://www.cnitblog.com/zhand/articles/53245.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>入侵asp网站漏洞汇总（1）</title><link>http://www.cnitblog.com/zhand/articles/53244.html</link><dc:creator>IT爱好者01</dc:creator><author>IT爱好者01</author><pubDate>Tue, 30 Dec 2008 06:27:00 GMT</pubDate><guid>http://www.cnitblog.com/zhand/articles/53244.html</guid><wfw:comment>http://www.cnitblog.com/zhand/comments/53244.html</wfw:comment><comments>http://www.cnitblog.com/zhand/articles/53244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/zhand/comments/commentRss/53244.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/zhand/services/trackbacks/53244.html</trackback:ping><description><![CDATA[<h2><span style="COLOR: red">最近总结了一下ASP网站的漏洞(新)</span></h2>
<div class=t_msgfont>最近总结了一下ASP网站的漏洞。<br>现在的网站 ，网站的漏洞，一般是ASP的网站。有些漏洞分为注入漏洞；XSS（跨站漏洞）；上传漏洞,本地上传.还有就是我们很了解的网站自<br><br>己带的漏洞当然这应该自己来发现的。<br>1。注入漏洞： SQL注入漏洞,是依靠存在弱点的WEB脚本代码,来实现通过浏览器执行任意SQL语句,从而<br>实现最终获取某种权限的攻击技术.SQL注入的关键部分在于对元数据的利用,所谓元数据即<br>数据库的基础数据.例如我们可以通过database() version()来获得数据库的名称及版本,<br>而我们通过SQL内置函数获得的这些内容都属于数据库元数据的内容.理解了元数据的概念,<br>其实主要 就是数据库的一些没过滤一些敏感的字符。<br><br><br>我们把IE菜单调整显示友好 HTTP 错误信息前面的勾去掉。这样那.就可以显示服务器的错误信息.这个那就是我们想要的.<br>一、ＳＱＬ注入原理 <br><br>以下我们从一个网站<a href="http://www.lanye.com/" target=_blank><u><font color=#800080>www.lanye.com</font></u></a>开始<br><br>在网站首页上，有名为&#8220;IE不能打开新窗口的多种解决方法&#8221;的链接，地址为：<a href="http://www.lanye.com/showdetail.asp?id=49" target=_blank><u><font color=#0000ff>http://www.lanye.com/showdetail.asp?id=49</font></u></a>，我们在这个地<br><br>址后面加上单引号&#8217;，服务器会返回下面的错误提示： <br><br>Microsoft JET Database Engine 错误 '80040e14' <br><br>字符串的语法错误 在查询表达式 'ID=49'' 中。 <br><br>/showdetail.asp，行8 <br><br>从这个错误提示我们能看出下面几点： <br><br>1.数据库是Access数据库，通过JET引擎连接数据库. <br><br>2.程序没有判断客户端提交的数据是否符合程序要求。 <br><br>3.该SQL语句所查询的表中有一名为ID的字段。<br>怎么样很简单吧!<br>这个现在那见到的很少了.但是还是存在的. <br><br>从上面的例子我们可以知道，ＳＱＬ注入的原理，就是从客户端提交特殊的代码，从而收集程序及服务器的信息，从而获取你想到得到的资料<br><br>。 <br><br>二、判断能否进行ＳＱＬ注入 <br><br><br>不一定服务器的IIS都返回具体错误提示给客户端，如果程序添家加这个cint(参数)之类语句的话，ＳＱＬ注入是不会成功的，但服务器也会出<br><br>现错误的.<br><br>其次，我自己认为只要把单引号过滤掉就安全了，这种情况不为少数，如果你用单引号测试，是测不到注入点的. <br><br>那么，什么样的测试方法才是比较准确呢？答案如下：　 <br><br>① <a href="http://www.lanye.com/showdetail.asp?id=49" target=_blank><u><font color=#0000ff>http://www.lanye.com/showdetail.asp?id=49</font></u></a> <br><br>② <a href="http://www.lanyecom/showdetail.asp?id=49" target=_blank><u><font color=#0000ff>http://www.lanyecom/showdetail.asp?id=49</font></u></a> and 1=1 <br><br>③ <a href="http://www.lanye.com/showdetail.asp?id=49" target=_blank><u><font color=#0000ff>http://www.lanye.com/showdetail.asp?id=49</font></u></a> and 1=2 <br><br>这就是经典的1=1、1=2测试法了，怎么判断呢？看看上面三个网址返回的结果就知道了： <br><br>可以注入的表现： <br><br>① 正常显示(这个是必须的.)<br><br>② 正常显示，内容基本与①相同 <br><br>③ 提示BOF或EOF（程序没做任何判断时）、或提示找不到记录（判断了rs.eof时）、或显示内容为空（程序加了on error resume next）　 <br><br>不可以注入就比较容易判断了，①同样正常显示，②和③一般都会有程序定义的错误提示，或提示类型转换时出错.怎么样.简单吧!<br>三、判断数据库类型及注入方法 <br><br>不同的数据库的函数、注入方法都是有差异的,因此我们要判断数据库呀!我们还要判断一下数据库的类型。一般ASP最常搭配的数据库是Access<br><br>和SQLServer，网上超过99%的网站都是其中之一。 <br><br>怎么让程序告诉你它使用的什么数据库呢？来看看： <br><br>SQLServer有一些系统变量，如果服务器IIS提示没关闭，并且SQLServer返回错误提示的话，那可以直接从出错信息获取，方法如下： <br><br><a href="http://www.lanye.com/showdetail.asp?id=49" target=_blank><u><font color=#0000ff>http://www.lanye.com/showdetail.asp?id=49</font></u></a> and user&gt;0 <br><br>这句语句很简单，但却包含了SQLServer的经典内容，让我理解它的含义：首先，前面的语句是正常的，重点在and user&gt;0，我们知道，user是<br><br>SQLServer的一个内置变量，它的值是当前连接的用户名，类型为nvarchar。拿一个nvarchar的值跟int的数0比较，系统会先试图将nvarchar的<br><br>值转成int型，当然，转的过程中肯定会出错，SQLServer的出错提示是：将nvarchar值 &#8221;abc&#8221; 转换数据类型为 int 的列时发生语法错误，<br><br>呵呵，abc正是变量user的值，这样，不废吹灰之力就拿到了数据库的用户名。<br>顺便说几句,SQLServer的用户sa是个等同Adminstrators权限的角色，拿到了sa权限，几乎肯定可以拿到主机的超级管理员了。上面的方法可以<br><br>很方便的测试出是否是用sa登录，要注意的是：如果是sa登录，提示是将&#8221;dbo&#8221;转换成int的列发生错误，而不是&#8221;sa&#8221;。 <br><br>如果服务器IIS不允许返回错误提示，那怎么判断数据库类型呢？我们可以从Access和SQLServer和区别入手，Access和SQLServer都有自己的系<br><br>统表，例如:存放数据库中所有对象的表，Access是在系统表[msysobjects]中，但在Web环境下读该表会提示&#8220;没有权限&#8221;，SQLServer是在表<br><br>[sysobjects]中，在Web环境下可正常读取。 <br><br>在确认可以注入的情况下，使用下面的语句： <br><br><a href="http://www.lanye.com/showdetail.asp?id=49" target=_blank><u><font color=#0000ff>http://www.lanye.com/showdetail.asp?id=49</font></u></a> and (select count(*) from sysobjects)&gt;0 <br><br><a href="http://www.lanye.com/showdetail.asp?id=49" target=_blank><u><font color=#0000ff>http://www.lanye.com/showdetail.asp?id=49</font></u></a> and (select count(*) from msysobjects)&gt;0 <br><br>如果数据库是SQLServer，那么第一个网址的页面与原页面<a href="http://www.lanye.com/showdetail.asp?id=49" target=_blank><u><font color=#0000ff>http://www.lanye.com/showdetail.asp?id=49</font></u></a>是大致相同的；而第二个网址，由于<br><br>找不到表msysobjects，会提示出错，就算程序有容错处理，页面也与原页面完全不同。 <br><br>如果数据库用的是Access，那么情况就有所不同，第一个网址的页面与原页面完全不同；第二个网址，则视乎数据库设置是否允许读该系统表<br><br>，一般来说是不允许的，所以与原网址也是完全不同。大多数情况下，用第一个网址就可以得知系统所用的数据库类型，第二个网址只作为开<br><br>启IIS错误提示时的验证。</div>
<img src ="http://www.cnitblog.com/zhand/aggbug/53244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/zhand/" target="_blank">IT爱好者01</a> 2008-12-30 14:27 <a href="http://www.cnitblog.com/zhand/articles/53244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>