赞
踩
步骤 1:在虚拟机中打开terminal终端窗口,输入sudo apt-get install apache2
输入root用户密码,即可完成安装,提问到发现新版本是否修改配置文件,选择N
步骤 2:Apache安装完成后,默认的网站根目录是”var/www/html”,在网站根目录路径下有一个index.html文件,在本机或虚拟机浏览器中输入”127.0.0.1”就可以打开该页面。
步骤 3:
1.cd /var/www/html
2.使用sudo gedit index.html指令打开index.html并进行编写(可自己进对应文件夹查看文件是否存在,www文件夹被隐藏,图形化界面需要ctrl+H显示被隐藏的文件,而使用terminal界面则默认可查看所有文件,如下图)
编写内容如下,内容随意
<html>
<head>
<title>hello</title>
</head>
<body>Hello!!!</body>
</html>
步骤 4:修改后在虚拟机内使用浏览器登录127.0.0.1,页面更改为新主页。
步骤 1: 在windows主机中找到hosts文件记事本打开,修改hosts文件加入虚拟机ip地址与主机名vulnerable并保存(C:\Windows\System32\drivers\etc
)。
步骤1:windows主机中输入curl+虚拟机ip地址可查看编写的index文件内容
步骤2:虚拟机中输入python3 --version 查看虚拟机是否有python3.5(本次实验大家用的虚拟机已安装python2.7与python3.5版本,python3版本才是我们用的,后续我们直接使用python3命令执行文件)
步骤3:创建.py的python执行文件(新建document,用gedit进行编辑,编辑结束重命名为xxx.py)
import requests
response = requests.post("http://10.208.80.231")
print(response.content)
步骤1:在主机创建c语言程序,写入如下代码并编译。编译指令g++ -o test .\TestC.c -lwsock32
,gcc无法编译,并且需要链接额外的库wsock32
//TestC.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> #include <winsock2.h> #include <time.h> #pragma comment(lib, "ws2_32.lib") void ReadPage(char *host) { WSADATA data; //winsock版本2.2 int err = WSAStartup(MAKEWORD(2, 2), &data); if (err) return; //用域名获取对方主机名 struct hostent *h = gethostbyname(host); if (h == NULL) return; printf(host); //IPV4 if (h->h_addrtype != AF_INET) return; struct in_addr ina; //解析IP memmove(&ina, h->h_addr, 4); LPSTR ipstr = inet_ntoa(ina); //Socket封装 struct sockaddr_in si; si.sin_family = AF_INET; si.sin_port = htons(80); si.sin_addr.S_un.S_addr = inet_addr(ipstr); int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); connect(sock, (SOCKADDR *)&si, sizeof(si)); if (sock == -1 || sock == -2) return; //发送请求 char request[1024] = "GET /?st=1 HTTP/1.1\r\nHost:"; strcat(request, host); strcat(request, "\r\nConnection:Close\r\n\r\n"); int ret = send(sock, request, strlen(request), 0); //获取网页内容 FILE *f = fopen("recieved.txt", "w"); int isstart = 0; while (ret > 0) { const int bufsize = 1024; char *buf = (char *)calloc(bufsize, 1); ret = recv(sock, buf, bufsize - 1, 0); printf(buf); fprintf(f, "%s", buf); free(buf); } fclose(f); closesocket(sock); WSACleanup(); printf("读取网页内容成功,已保存在recieved.txt中\n"); return; } int main() { char str[] = "vulnerable"; ReadPage(str); system("pause"); return 0; }
步骤2:执行该文件,查看网页定向是否正确
值得注意的是,shell对utf-8编码有误,需要事先输入
chcp 65001
才能如图正常输出汉字,
参考链接
步骤 1:从https://portswigger.net/burp网站中下载Comuunity版本(需配置jdk环境)
步骤 2:对测试浏览器Chrome进行代理设置,地址设为127.0.0.1,端口修改为8888
步骤 3:打开Burp Suite界面,设置Proxy代理,端口改为8888 (需安装CA安全证书)
步骤 4:使用浏览器打开my.seu.edu.cn查看拦截情况(使用open browser按钮打开浏览器,输入网址后下图会有类似的信息,如果不是对应的地址,请点击forward/drop选择找到响应的my.seu.edu.cn的信息)
步骤 5:如图在该位置添加,配置与图相同
步骤 6:测试CSDN通过发送验证码找回密码功能,查看Request和Response功能(网站进行访问时需要点击forward按钮才能不断发送请求与接收响应,在测试CSDN之前需要对网页进行多次访问,因此可
以先关闭拦截,点击Intercept is on按钮进行关闭,在需要拦截时再打开)
需要安装PHP与MySQL的相关库,由于实验一的网桥配置不完善,虚拟机无法访问外网,所以应先取消网桥再进行安装
例如,访问http://vulnerable/hello.php?name = xxx将返回“ Hello xxx”。
步骤 1:查询本机php版本(本机7.0),在终端中安装对应版本的依赖库,执行如下的命令来安装 PHP 7.0依赖库:
$ sudo apt install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi php7.0 libapache2-mod-php7.0
步骤 2:编写hello.php,使用命令sudo nautilus以管理员方式打开文件管理器,将该文件放入var/www/html,删除原来编写的index.html文件
对实验手册代码稍加修改,增加了name2以自行探索
<?php //Get current URL function GetCurUrl(){ $url = 'http://'; if(isset($_SERVER['HTTP']) && $_SERVER['HTTP'] == 'on'){ $url = 'http://'; } //judge port if($_SERVER['SERVER_PORT'] != 80) { $url .= $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . ':' . $_SERVER['REQUEST_URI']; } else { $url .= $_SERVER['SERVER_NAME'] . ':' . $_SERVER['REQUEST_URI']; } return $url; } parse_str(substr(GetCurUrl(), strpos(GetCurUrl(), '?')+1), $ar); echo "Hello "; print_r($ar[name]); print_r($ar[name2]); ?>
访问
http://vulnerable/hello.php?name2=sss&name=qqq&name3=aaa
发现可以自动识别参数类型并过滤,可以对&进行识别。具体原理由于未学习PHP相关知识,无法明白。
步骤1:install Mysql
在终端输入sudo apt-get install mysql-server mysql-client
步骤 2:systemctl status mysql
查看mysql状态是否启动,未激活则
systemctl start mysql
进行启动
步骤 3:gedit /etc/mysql/debian.cnf
打开该文件,查看mysql为我们创建的的一个用户,找到用户名和密码
步骤4:然后在终端输入 mysql -u debian-sys-maint -p 然后回车输入文件里显示的密码(之后编写php文件对数据库进行访问的时候也需要这个用户名和密码才能创建与数据库的连接,大家也可以自行百度创建自己的mysql用户)
步骤5:进入mysql操作界面后,创建接下来需要使用的数据库以及相关的表
1.创建数据库和表(mysql命令以封号;结尾)
1)mysql>create database security_test;
2)mysql>show databases; 查看是否创建成功
3)mysql>use security_test;进入创建好的数据库
4)创建用户信息表
mysql> create table user_info(
-> userid int not null primary key auto_increment,
-> user_name varchar(30),
-> user_password varchar(15),
-> age int,
-> address varchar(60),
-> phone_number varchar(13));
5)创建用户好友列表
mysql> create table user_friends(
-> friendid int not null primary key auto_increment,
-> friend_name varchar(30),
-> friend_age int,
-> friend_introduce varchar(100),
-> userid int not null);
6)mysql>show tables;查看表信息,
mysql>desc user_info;查看表字段信息
7)为两个表插入数据,插入格式如下,可自行多插入几条数据
mysql-> insert into user_info values (1,'Alice','passward',24,'ddr_of_Alice','123456789');
mysql-> insert into user_friends(friendid,friend_name,friend_age,friend_introduce,userid) values (1,'Boby',23,'I love Alice!',1);
8)查看表格信息
mysql> select * from 表名
步骤 1:将项目解压到apache的启动目录(/var/www/html),移除该文件夹原来编写的测试文件(自己编写的同学们略过这步处理)
步骤 2:打开项目的utils文件夹下的mysqlBase.php,核对虚拟机上的mysql用户名与密码还有数据库名称,匹配不上会导致连接失败(自己编写的同学们略过这步处理)
步骤 3:使用主机浏览器访问地址:http://vulnerable ,即可测试登录注册,修改个人信息,添加删除好友列表等等
登录界面(登录信息请选择自己写进表(user_info)的账号密码,如上述插入的bob,123456)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。