0
点赞
收藏
分享

微信扫一扫

网安学习——web漏洞(上)

天涯学馆 2022-02-13 阅读 63

🌟🌟笔记来源📒:11.WEB漏洞——SQL注入之必懂知识点 · 语雀

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

一、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

三、文件上传

 

举报

相关推荐

0 条评论