web漏洞-SQL注入漏洞、目录遍历漏洞、文件下载漏洞

这里用到的是Pikachu漏洞练习平台

一、SQL注入漏洞-数字型注入

SQL注入漏洞简介

在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞。

一个严重的SQL注入漏洞,可能会直接导致一家公司破产!

SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。

在构建代码时,一般会从如下几个方面的策略来防止SQL注入漏洞:

1.对传进SQL语句里面的变量进行过滤,不允许危险字符传入;

2.使用参数化(Parameterized Query 或 Parameterized Statement);

3.还有就是,目前有很多ORM框架会自动使用参数化解决注入问题,但其也提供了"拼接"的方式,所以使用时需要慎重!

认识网站与数据库的联系

  1. 为了更加方便展示,首先修改pikachu/vul/sqli下/sqli_id.php的网站原码。

  1. 修改后网页内便可显示当前执行的SQL语句,效果如下。

  1. 在mysql.exe路径下打开命令提示符,输入账号密码后登陆数据库,并列出所有数据库。

  1. 选择并展示pikschu数据库下的表。

  1. 展示member表下的信息。

  1. 将上述操作中所展示出来的member表下的信息与网页里的进行对比,不难发现网页里返回的数据即为数据库中的数据;将网页里返回的SQL语句粘贴进命令提示符里进行执行也可以发现网页里返回的数据和数据库中的数据相同。

通过此漏洞获取网站管理员的账号和密码

  1. 使用Burp Suite抓包可以发现当在网页里选择“1”后,数据包如下图左侧所示,此时执行的SQL语句为下图右侧红框内所示。

  1. 所以可以想到可以通过修改数据包来使网页返回数据库内不同的信息,如:网站管理员的账号和密码。

  1. 将数据包修改为下图所示。

  1. 将数据包发送后便可得到网站管理员的账号和密码。

总结:

利用此漏洞可以获取到网站数据库内的敏感信息。


二、目录遍历漏洞

目录遍历漏洞简介

在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“../”这样的手段让后台打开或者执行一些其他的文件。 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞。

看到这里,你可能会觉得目录遍历漏洞和不安全的文件下载,甚至文件包含漏洞有差不多的意思,是的,目录遍历漏洞形成的最主要的原因跟这两者一样,都是在功能设计中将要操作的文件使用变量的 方式传递给了后台,而又没有进行严格的安全考虑而造成的,只是出现的位置所展现的现象不一样,因此,这里还是单独拿出来定义一下。

需要区分一下的是,如果你通过不带参数的url(比如:http://xxxx/doc)列出了doc文件夹里面所有的文件,这种情况,我们成为敏感信息泄露。 而并不归为目录遍历漏洞。(关于敏感信息泄露你你可以在"i can see you ABC"中了解更多)

操作

  1. 当点击下面两个不同的字样时,网址也会跟着变化。

  1. 将变化的两串网址拿出来分析每个不同部分的含义如下。

  1. 在此路径下新建一个“1.php”文件,内容写入“111”。

  1. 修改网址为“http://127.0.0.1:8080/pikachu/vul/dir/dir_list.php?title=1.php”访问页面,可以看到网页返回了刚刚写入的内容。

  1. 在“WWW”目录下创建“2.php”文件,内容写入“222”。

  1. 利用目录遍历漏洞,使用“../”可以退回到当前路径的上一级。

  1. 修改网址为“http://127.0.0.1:8080/pikachu/vul/dir/dir_list.php?title=../../../../2.php”访问页面,便可以看到网页返回了“WWW”目录下刚刚写入的内容。

总结:

利用此漏洞可以用来进行跨目录文件内容的读取,进而读取到网站的一些敏感信息。


三、文件下载漏洞

文件下载漏洞简介

文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。

此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如../../../etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。

所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心!

操作

  1. 下载任意图片后右键后点击“复制下载链接”。(下载链接如下:http://localhost/pikachu/vul/unsafedownload/execdownload.php?filename=kb.png

  1. 修改网址为“http://127.0.0.1:8080/pikachu/vul/dir/dir_list.php?title=../../../../2.php”访问页面,即可将目标文件下载到本地。

总结:

利用此漏洞可以用来下载网站的敏感文件,进而为获取网站更高权限提供帮助。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ranzi.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值