当前位置: 首页 > news >正文

Web前渗透

一、SQL注入

原理:

攻击者在输入框里输入恶意的SQL语句,导致能和正常的SQL语句拼接在一起,且拼接好的SQL语句能被数据库执行,导致数据泄漏,这种注入就叫做SQL注入

防护方式:

1、使用addlashes将单引号进行转义

2、将id类的转换成整数

3、对输入的数据进行一个长度的判断,通常长度不会太长

4、设置黑白名单,禁止information_schema、order by、union等等

5、在SQL语句的后面加一个die()函数

绕过方式:

1、联合查询

先使用order by进行列数的判断,接着使用union select来获取有用的信息

2、报错注入

常用的函数就是updatexml、extractvalue、floor,将数据库信息在报错信息中展现出来

3、布尔盲注

针对无回显的时候,通过对数据库名字长度、字符位置等等的判断,如果判断正确则直接回显我们所查询的信息,如果错误就不会回显信息,针对这种情况,我们可以进行爆破

4、时间盲注

也是针对无回显的时候,如果我们判断对了数据库的长度或者字符的位置,那么将会执行sleep函数,如果sleep(5),那么我们就等5秒页面就会刷新成功

5、SqlMap

-u 指定url进行扫描

指定文件批量检测,将需要扫描的url复制粘贴到txt文件中,然后使用-m进行扫描

指定post请求,就是将http请求数据包的内容放到一个txt文件中,然后使用-r进行检测

绕WAF,就是在sqlmap -u 后面加脚本文件

6、更新注入

核心就是构建报错注入的payload,也就是报错注入,通过报错来将信息展现在报错信息里面

7、堆叠注入

攻击者通过SQL注入漏洞,将多个SQL语句堆叠在一起的注入,通常用;分开

8、URL解码注入

就比如说我们输入%2527,第一次解码是将%25解码成%,然后和后面的27拼接成%27,接着将%27进行解码成',和前面的'进行闭合导致的注入

9、二次注入

将已存储在数据库里的内容再次读取出来,然后进入到SQL语句中执行的注入

10、宽字节注入

当你输入1'的时候,由于有addlashes进行转义,导致变成了'1\'',而数据库里没有这个名字的数据,所以不会查询到信息

当我们输入1%bf'的时候,在gbk的编码环境下,我们的%bf会和\(%5c)形成一个新的字符,从而吃掉了这个转义字符,导致我们的单引号可以进行闭合,然后就注入成功了,能够查到信息了

11、HTTP头注

如何绕过WAF

1、双写绕过

2、大小写绕过

3、编码绕过

4、特殊字符绕过:

空格、&&、||、内联注释、00截断、%省略(如果是iis或者asp的环境,%有可能会被省略)

如何getshell

1、先看看是否有读写权限,如果有的话,我们就直接使用into outfile写入一句话木马,然后使用蚁剑进行连接

2、当然也可以读取文件,使用目录遍历

二、XSS注入

分类:

反射型XSS:

攻击者构造一个恶意的urlxss发送给受害者,诱使受害者去点击,点击之后恶意代码就会在受害者的浏览器上执行,从而达到攻击的效果

存储型XSS:

常用于剪贴板,攻击者将构造好的js代码上传到剪贴板中,每当有一个用户来访问的时候,就会将保存好的恶意代码传到用户的浏览器上去执行,进而达到攻击的效果

DOM型XSS:

通过输入<>,看看输出位置在哪,然后进行拼接,使其拼接成一个浏览器能够执行的js代码,从而达到攻击的效果

原理:

攻击者将恶意的JavaScript代码植入到用户的浏览器里面去,然后诱惑用户去点击,用户一旦点击,那么恶意的JavaScript代码就会在用户的浏览器里执行,从而达到了攻击的效果

防护方式:

1、使用html实体编码,将我们输入的<>等等都进行实体编码,不要与我们原有的JavaScript代码产生交集

2、正则表达式或字符判断,如果是超链接的话,需要在链接属性上加一个对http或https的正则表达式来进行限制,不然直接就可以使用javascript:alert(1)进行注入了

3、设置httponly,防止获取到用户的cookie值

4、使用CSP内容安全策略

绕过方式:

1、进行前端限制

2、字符过滤,双写、大小写,通过注释符进行绕过、换行符绕过

3、实体转移,也就是将JavaScript代码转换成16进制,然后进行注入测试

4、看看是否将<>进行过滤或转义,如果没有直接<img src=1 οnclick=alert(1)>

如何getshell:

获取到用户的cookie,使用beef或者blue来监听上线的用户,从而收集到他们的cookie值,然后使用他们的cookie值进行破坏等等,如果收集到了root权限的cookie,那我们就能为所欲为了

三、文件上传漏洞

原理:

由于应用程序没有对用户上传的文件的后缀名进行过滤,导致可以上传恶意文件,获得对服务器的控制

绕过方式:

1、禁用js代码

2、通过MIME数据格式进行绕过

3、通过content-type进行绕过

4、图片马绕过

5、双写绕过

6、条件竞争

7、空格绕过

8、点绕过

9、点空格点绕过

10、大小写绕过

防护方式:

1、限制文件类型

2、将上传功能通过ajax的方式进行上传

3、限制能够访问的文件

4、对一些特殊的字符进行绕过

5、尽量不要让普通用户接触到htaccess特征文件

如何Getshell:

通过上述绕过方式来上传一句话木马,使用蚁剑进行连接,获得访问文件以及获得命令行的权限

四、文件下载漏洞

原理:

由于应用程序没有对用户的输入进行一个严格的过滤,导致攻击者可以随便下载该服务器上的文件

绕过方式:

1、使用目录遍历进行绕过

防护方式:

1、过滤.,使其不能进行目录遍历

2、正则表达式严格判断用户输入数据的方式

3、在php.ini中限定访问文件的范围

4、将文件存储到数据库中,使用id=整数的形式进行下载

五、文件包含漏洞

原理:

由于Web应用程序没有将用户输入的数据进行严格的判断,导致用户输入的数据能够接触到危险函数include等等,从而使其输入的文件能够被执行,导致服务器沦陷

绕过方式:

1、包含web日志

如果中间件是apache的话,我们可以在访问服务器的时候进行抓包,将我们的一句话木马写入到请求中,然后执行,使其进入到日志文件中,通过访问就可以getshell了

2、包含登录日志

22端口和3306端口

也是将我们的一句话木马写入到登录请求中,然后去访问我们的日志文件进而getshell,前提是这两个的日志是开启的

3、包含mysql日志

进入到mysql之后,我们可以执行select 加上我们的一句话木马,然后进入到我们的mysql.log中进行查看,如果完好无损,则可以访问给该文件进行getshell

4、包含上传文件

就比如包含一张图片马,上传成功之后我们去访问这个图片马,进而可以getshell

5、包含临时文件

也就是条件竞争,争取在恶意文件被删除的时间内能够访问到,只要shell不断,就可以保持连接

6、包含session文件

session文件一般都保存在服务器中,其路径也是固定的,因此只要找到一个控制session文件写入的点,就能够利用包含漏洞getshell

防护方式:

1、过滤特殊字符.,防止进行目录遍历

2、正则严格判断输入数据的格式

3、在配置文件中限定访问文件的范围

4、将文件放入数据库中,通过?id=整数来读取

六、CSRF

原理:

攻击者利用服务器对用户的信任,伪造一个恶意链接,然后发送给受害者,受害者一旦点击就被攻击了,也叫做one click攻击

漏洞挖掘方式:

1、去抓取一个正常请求的数据包,如果该数据包里面没有Referer和Token,说明极有可能存在CSRF漏洞

2、如果数据包中有Referer字段,但是去掉Referer字段再重新提交还有效的话,大概率是有CSRF漏洞的

3、也可以使用CSRF检测工具

防护方式:

1、可以使用验证码

2、在请求地址中添加token并验证

3、验证HTTP Referer字段

4、对来源进行限定

5、敏感信息的修改不应该是GET,而是POST

七、SSRF

原理:

服务器提供了向其他服务器请求资源的功能,由于没有对目标地址进行严格的过滤与限制,导致攻击者可以随意传入任意地址来让后端服务器发送请求,并返回对目标地址的请求的数据

绕过方式:

1、将IP地址改为十进制

2、重训构造一个URL地址

3、使用短网址

防御方式:

1、限定协议为HTTP、HTTPS、不允许其他协议

2、设置URL或IP地址白名单,非白名单不允许访问

3、限制内网IP访问

4、统一错误信息,避免用户根据错误信息来判断远程服务器的端口状态

5、限定请求的端口

6、尽量让参数不可控

7、对目标地址做好过滤

八、PHP反序列化

原理:

序列化就是将对象转换成字符串。反序列化就是将字符串转换为对象,PHP反序列化又分为两种,一种是有类,另一种是无类,如果源码会将输入的值进行反序列化,那我们就需要提前将数据序列化后再传入,想要利用到的方法就是魔术方法

九、XXE

原理:

XML外部实体注入,发生在应用程序解析XML输入的时候,没有禁止外部实体的加载,导致可以加载恶意外部文件,造成文件读取、命令执行等等危害

相关文章:

  • Win11 配置 Git 绑定 Github 账号的方法与问题汇总
  • flask返回文件的同时返回其他参数
  • 【密码学——基础理论与应用】李子臣编著 第七章 公钥密码 课后习题
  • ubuntu扩展逻辑卷并调整文件系统大小步骤
  • “RS232转Profinet,开启“变频器工业版绝绝子!”
  • Step1X-Edit: A practical framework for general image editing
  • 28-29【动手学深度学习】批量归一化 + ResNet
  • 《深入浅出Git:从版本控制原理到高效协作实战》​
  • uniapp-商城-42-shop 后台管理 分包
  • VRRP与BFD在冗余设计中的核心区别:从“备用网关”到“毫秒级故障检测”
  • [ACTF2020 新生赛]Upload
  • 大模型API密钥的环境变量配置(大模型API KEY管理)(将密钥存储在环境变量)(python-dotenv)(密钥管理)
  • 编译原理实验 之 Tiny C语言编译程序实验 语法分析
  • 李臻20242817_安全文件传输系统项目报告_第9周
  • w~嵌入式C语言~合集4
  • flask uri 怎么统一加前缀
  • 【Web API系列】深入解析 Web Service Worker 中的 WindowClient 接口:原理、实践与进阶应用
  • Spring框架的ObjectProvider用法
  • C#通过NTP服务器获取NTP时间
  • 鸿蒙版电影app设计开发
  • 今年我国电影票房破250亿领跑全球,“电影+”带动文旅消费热潮
  • 早睡1小时,变化有多惊人?第一个就没想到
  • 安阳一村支书微信群骂村民被警方行拘,辩称对方先“污蔑造谣”
  • 伊朗港口爆炸致18死800余伤,三分之二伤者已出院
  • 特朗普将举行集会庆祝重返白宫执政百日,美媒:时机不当
  • 湖南省郴州市统战部部长黄峥嵘主动交代问题,接受审查调查