渗透专题丨web Top10 漏洞简述(1)

本文深入探讨了Web安全的三大常见漏洞:SQL注入、文件上传和XSS。详细解释了SQL注入的原理、预防手段及各种绕过技术;文件上传漏洞的产生、防范措施及攻击方法;最后介绍了XSS攻击的危害、类型及编码绕过技巧。通过本文,读者将对这些威胁有更全面的理解。
摘要由CSDN通过智能技术生成

SQL注入

1、简述

web程序中对于用户提交参数没有过滤直接放到SQL语句中执行,打破了SQL语句逻辑,获取信息,执行命令等。

2、预防手段

1. 减少网站显示SQL错误信息,像类型错误,字段不匹配等,可以防止黑客获取相关信息;

2. 限制用户对于数据库的操作权限;

3. 对进入数据库的特殊字符进行转义处理或者编码转换;

4. 网站数据层进行编码统一;

5. 查询语句使用参数化查询接口;

6. 限制用户输入长度;

7. 确定数据库中数据类型。

3、SQL注入原理

• 从前端传给后端的参数内容是用户可以控制的

• 传入的参数是可以拼接到SQL语句中执行

4、SQL注入常规思路

1. 找注入点,手工或者web扫描工具实现

2. 通过注入点,获取有关数据库信息,像数据库用户名、数据库名称、数据库版本等信息

3. 猜测数据库表重要字段和内容,像存放管理员账户表名等

4. 通过获取的用户信息,进行登录

5、手工注入思路

1. 判断是否存在注入,注入是字符型还是数字型

2. 猜解 SQL 查询语句中的字段数 order by N

3. 确定显示的字段顺序

4. 获取当前数据库

5. 获取数据库中的表

6. 获取表中的字段名

7. 查询到账户的数据

6、SQL花式注入手段

• 延迟注入:属于盲注入,一般是某个注入点无法通过布尔型注入后去数据而采取的一种突破注入的技术手段,判断注入可以使用“and sleep(10)”让数据库延时10秒返回,网页响应至少需要10秒,根据这个原理判断存在SQL时间注入。例:select if(length(database())>1,sleep(5),0) 这个就是查询当前库大于 1 就会延时 5 秒执行。

• 堆叠注入:堆叠查询可以执行多条 SQL 语句,语句之间以分号(;)隔开,而堆叠查询注入攻击就是利用此特点,在第二条语句中构造要执行攻击的语句。在 mysql 里 mysqli_multi_query 和 mysql_multi_query这两个函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔。他可以任意使用增删改查的语句,例如删除数据库 修改数据库,添加数据库用户。

• 二次注入攻击:在第一次进行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助get_magic_quotes_gpc 对其中的特殊字符进行了转义,但是 addslashes 有一个特点就是虽然参数在过滤后会添加 “\” 进行转义,但是“\”并不会插入到数据库中,在写入数据库的时候还是保留了原来的数据。在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行下一步的检验和处理,这样就会

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极安御信安全研究院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值