信息安全web安全学习04

第十一节课——web漏洞必懂知识

一、

网站后台权限不等于服务器权限
漏洞等级划分:
SQL注入、文件上传、文件包含、代码执行、未授权访问、命令执行都属于高危漏洞,涉及后台权限
反序列化、逻辑安全部分影响属于中危漏洞
小量的信息泄露属于低微漏洞

SRC偏向于逻辑安全更多
红蓝对抗偏向于高危漏洞(权限)

第十二节课——SQL注入的简单注入

一、

MYSQL注入(对语句进行拼接)的危害:
通过漏洞(注点)可以直接对后台进行写入(有条件性的—权限 )
注意提前了解SQL基本语句和一些关键词例如union等运用

如何判断注点:
老办法:
and 1=1页面正常
and 1=2页面异常
可能存在注点
要选用最好的经验方法去测试

..../index.php?id=$id(必须是可控变量、必须有数据库带入查询mysql_query、变量不存在过滤或不严谨)
实际执行:select *from users where id=$id limit 0,1
eg:
..../index.php?id=1
实际执行:select *from users where id=1 limit 0,1
..../index.php?id=-2 union select 1,email_3,3 from emails
实际执行:select *from users where id=-2 union select 1, email_id,,3 from emails limit 0,1

常见可能的注入点(注入and 1=1):
…/index.php?id=20
…/?id=20(默认存在index,即为index.php?id=20)
…/?id=20&x=1
参数x有注入,注入测试正确的:
…/index.php?y=1 and 1=1&x=2(该语句没有x注入,and 1=1注入语句必须写在变量x后面)
…/index.php?y=1&x=2 and 1=1
…/index.php?y=1 and 1=1&x=2 and 1=1

二、

信息收集:
操作系统(window、Linux有差别,数据库所在盘)、数据库名、数据库用户(数据库管理员,不同于网站管理员)、数据库版本(低版本、高版本,大概以5.0为区分)、其他(网站路径)

判断注入、猜解列数量(字段数)order by x 错误与正确的数值、报错猜解准备
信息收集(语句):
数据库版本:version()
数据库名字:database()
数据库用户名:user()
操作系统:version_compile_os()

必要知识:
在MySQL5.0以上的版本中,MySQL存在一个自带数据库名为information_schema,他是一个存储记录有数据库名、表名、列名的数据库,也相当于可以通过查询他获取指定数据库下的表名和信息

数据库中符号“.”代表下一级,例如xi.user表示xi数据库下的user表名

information_schema.tables:记录所有表名信息的表
information_schema.column:记录所有列名信息的表
table_name:表名
column_name:列名
table_schema:数据库名

MySQL数据库
数据库a(use a)=>网站a数据库用户A
表名xxx(show tables)
列名
数据
数据库b=>网站b
数据库用户B

数据库c=>网站c==数据库用户C

查询指定数据库名a下的表名信息:
?id=-1 union select 1,group_concat(table_name),3,4 form information_schema.tables where table_schema=‘a’

查询指定表名xxx下的列名信息:
?id=-1 union select 1,group_concat(column_name),3,4 form information_schema.column where table_name=‘xxx’

查询指定数据
?id=-1 union select 1,name,password,4 form xxx

猜解多个数据可以采用limit x,1 变动猜解

第十三节课——MySQL注入

一、

最高权限注入,默认MySQL高权限用户为root,可以跨库

思路(跨库):
使用inform ation_schema数据库查看所有表,获得数据库名

注:
在schemata表中,schema_name字段用来存储数据库名
在table表中,table_schema和table_name分别用来存储数据库名和表名

获取数据库名:
?id=-1 union select 1,group_concat(schema_name),3,4 form information_schema.schemata
获取指定a数据库名下的表名信息:
?id=-1 union select 1,group_concat(table_name),3,4 form information_schema.tables where table_schema=‘a’
查询指定表名admin下的列名信息:
?id=-1 union select 1,group_concat(column_name),3,4 form information_schema.column where table_name=‘admin’
注意直接查询admin会有多个结果,可以添加库名条件(and table_schema=‘a’)
获取指定a下的admin数据
?in=-1 union select 1,first,second,4 from a.admin

二、

文件读写操作:
load_file():读取函数
into outfile 或 into dumpfile:导出函数
路径获取常见方法:
报错显示、遗留文件(例如一些PHPinfo网页中指出当前script_filename的所在路径)、漏洞报错、平台配置文件、爆破等

相关防注入:
magic_quotes_gpc(魔术引号开关——防护机制)网络配置选项,会对四种特殊字符进行转移(’、"、\ 、NULL)会影响路径读写获取。可以尝试应对魔术引号开关的措施:用编码或宽字节绕过
内置函数,对类型对行判定(is_int等 函数判定)
过滤自定义关键字

第十四节课——web漏洞类型以及提交注入

一、

SQL注入的条件:数据的接受、数据库的查询

可能的注入点
g e t = get= get=_GET[‘g’] //get接受参数名g的值赋值给变量get
echo $get //输出get参数的值
p o s t = post= post=_POST[‘p’] //post接受参数名p的值赋值给变量post
echo $post //输出post参数的值(注意post数据包格式,参数在最下面)
POST方式可以传get方式的参数,而GET方式不传送post方式的参数
COOKIE、REQUEST、SEVER、JSON(类字典格式,变量符号的闭合看sql语句,常见双引号不需要闭合)等方式
在数据包对应位置进行注入

常见字符串传参,会自带引号影响,故注入传参时注意引号的闭合(使用注释#对后续语句的处理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值