服务器渗透测试练习(part1:搭建基础平台)

#0写在之前

最初是想用别人做好的网站来进行练习的,也没想过要把过程发表,但是在使用别人的东西的时候还是觉得不够方便(我最初用的是DVWA,但是无限报错是个很烦的东西),所以决心自己搭建练习用的服务器和网页。

在整个过程中其实我都比较随意,因为最初没有想过要发表,但是在做的过程中产生了这个念头,所以其中的有些地方会不够标准(比如设计网页时会偏向于用标签的style属性而不是CSS),还请见谅,看不惯可以自己进行更改。

所有用到的网页我都不会提供下载,因为这些网页都是有漏洞的,会造成安全隐患,看到这篇文章的人要是决定自己尝试也不要把这些网页放到开放服务器上,不然后果自负。

#1:架设服务程序

我用的是Windows10,所以选择的是Wamp的框架,如果有用别的操作系统的或者想自己配置的人请自行查阅资料。

先到官网下载安装程序。Wamp的安装基本上就是一路Next,看到网上说有很多缺DLL的情况,不知道是什么情况,至少我完全没有遇到过。

安装完成后进入你的安装目录,找到Apache的安装文件夹下的配置文件(通常在\wamp\bin\apache\apache***(不同版本会不一样)\conf\httpd.conf),用文本编辑器打开,做如下修改:查找“Listen 80”,将80改为其他端口(最好是在10000以后的,常见的会被占用的端口见这篇文章)。(后面这个有需要的才改,但是后面设计网页的时候会出现index.php,所以建议改成自己的站点目录)然后查找“DocumentRoot”,找到开头没有#,后面接一个字符串,下一行是”<Directory“开头,也是接一个字符串的地方,将两个字符串都改成自己的站点目录。保存,重启Apache。

测试修改是否生效就新建一个index.html

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>index</title>
 6 </head>
 7 
 8 <body>
 9   <h1>It Works!</h1>
10 </body>
11 </html>

 

然后放在自己的站点目录下,然后在浏览器地址栏输入127.0.0.1或localhost或这台电脑的IP(在cmd用ipconfig命令查看,推荐这种写法,因为后面会用到Burpsuite,前两种写法会无法捕捉请求)来访问自己的服务器(注意,如果按照上面说的设置了端口的,要在IP后加上一个冒号(英文)和你设置的端口号),应该能看到大大的一个It Works!出现在浏览器上。服务器架设完成。

#2:下载和配置相关软件

首先,编写网页需要一个编辑器(当然可以用notepad,但是PHP语法错误是会报错的,而notepad无法帮你找错误)笔者用的是Adobe DreamWeaver,也可以用其他的(因为Adobe DreamWeaver要钱),自己习惯就行。

然后,上面提到过的Burpsuite,因为是Java软件,所以需要安装Java。然后Burpsuite有免费和付费两个版本,请自行百度进行选择。

然后是浏览器。笔者用的是Chrome浏览器,所以所有的网页都是在Chrome中进行测试的,如果有其他问题(如Firefox的一些属性名会不一样,IE较低版本会有兼容问题等),请根据自己使用的浏览器进行更改。

使用Chrome还因为有很多扩展程序可以使用。这里笔者用了一个叫Proxy SwitchyOmega的插件,控制多个代理间的转换(因为Burpsuite是以代理的方式工作的,设置成系统代理就会拦截到一些Windows系统的请求,不方便操作)请自行决定是否使用。

再多弄一台电脑,后面会用到Kail Linux的一些功能,可以去再买一台电脑(如果你足够有钱)也可以下载VMWare或Virtualbox(如果你不那么有钱)。然后访问Kali Linux的官网下载Kali Linux系统的VMware版(或Virtualbox版,因为Kali只提供这两个虚拟机版本)的文件,然后再自行百度安装。

好像没了。

#3:建立本地文件

笔者建立的网站大概也类似于一个博客网站,本地文件结构是这个样子的:

main
  |—book
      |—test.txt
      |—test.xml
  |—tmp
  |—articles_list.xml
  |—AuthInfo.xml
  |—index.php
  |—login.php
  |—logcheck.php
  |—logout.php
  |—signup.php
  |—read.php
  |—newdoc.php

book文件夹下是存放提交的文章,tmp文件夹是存放session文件的(因为不知道为什么,在笔者的电脑上就是无法使用保存在本地的cookie,所以笔者相当于自己造轮子,重写了session的方法),articles_list.xml是文章的列表(因为笔者不是很熟悉SQL),AuthInfo.xml是用户列表,index.php是主页面,login.php登录页面,logcheck.php检查登录,logout.php注销操作,signup.php注册页面,read.php阅读页面,newdoc.php新建文章,因为写这篇博客时编辑文章和删除文章部分还没有完成,所有没有包含在这里面。至于文件的内容就在后面的文章里进行讲解。

#4:具体会有哪些服务器漏洞

建立这个网站的初衷是进行渗透测试,所以会人为的制造漏洞,那么会涉及到哪些漏洞呢?

1、XSS

XSS(跨站脚本攻击)是非常常见的服务器漏洞,一般是因为没有对输入进行审查导致的,具体可以参见这篇文章这篇文章

2、LFI

LFI(本地文件包含)也是因为没有进行审查导致的漏洞,详见这篇文章

3、RFI

RFI(远程文件包含),可以看一下这篇文章,但是我感觉有些东西没有提到。比如不是一定要用PHP的include和require才能构成漏洞,还可以利用与XSS类似的方法(如img标签的onerror属性,是可以做到类似XSS的效果的。)

4、登录验证只验证密码的哈希值,即不用知道密码明文也可以登录别人的账号(其实原本没有这条,后来加的,后面也许还会有别的漏洞,这里就不一一列举了)

综上所述,别把这玩意放到开放服务器上!!!

在下一篇文章中就会开始正式编写网页代码,请确认已将上述的东西了解之后再进行下一步。

posted @ 2021-02-25 23:05  awcyvan  阅读(108)  评论(0)    收藏  举报