首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识
点击下面链接可以获取
超详细的网络安全学习笔记https://m.tb.cn/h.5DYXdDY?tk=obYuWMaxk8x
请参考以下博客安装(特详细):
请参考以下博客安装(特详细):
首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识
点击下面链接可以获取
超详细的网络安全学习笔记https://m.tb.cn/h.5DYXdDY?tk=obYuWMaxk8x
以pikachu靶场为例进行演示
发现点击名字就可以下载图片
看一下图片的网址
http://192.168.31.159/pikachu/vul/unsafedownload/execdownload.php?filename=kb.png
看到这样的网址,我们上来的反应是sql注入点、xss攻击等手段,现在还需要考虑有没有任意文件下载漏洞,比如改一个文件名会怎样呢?会不会下载这个文件名的文件呢?先看一下文件所在目录
那么网址路径和物理路径的对应关系如下:但是注意,物理路径的最后一个download文件夹是没有在网址路径上体现出来的,通过filename参数对应的文件名称,后台代码肯定是去download文件夹里面找对应的文件了
我们再来看, ../../../index.php ,从download文件夹开始往上层走,找到了如下pikachu文件夹,将里面的文件下载下来了。
我输入完网址,一按回车就把index.php下载下来了
效果:index.php被下载下来了,这就叫做任意文件下载。这样的漏洞现在还有好多。
我们看一看execdownload.php文件代码
写代码的时候,代码规定一个绝对路径,只能在某个文件夹里面下载文件,这样就能防止这个漏洞,但是很多程序员不知道这个问题,导致了漏洞。另一个防御方法,就是将 ../ 之类的符号屏蔽或者过滤掉。
很多网站还会出先如下的问题,就是写很多很多层的 ../
比如下面这种,如果是Linux系统部署的网站,通过../不断往上走,能查看/etc/passwd文件
- http://192.168.0.15/pikachu/vul/unsafedownload/execdownload.php?filename=../../../../../../../../../../../../../../../etc/passwd
- ## 通过../../等切换目录,也叫做目录穿越漏洞。
很明显,这个层级是不存在的,那么如果没有对路径进行处理的话,很有可能默认就直接返回了系统根路径,那么就拿到了根路径下面的etc下面的passwd文件。
快速扫描下载漏洞的时候,不管是工具还是手工,我们怎么判断下载漏洞呢?它有几个关键的形式:
- ## 一般链接形式:
- download.php?path=
- down.php?file=
- data.php?file=
- download.php?filename=
-
- ## 或者包含参数:
- &Src=
- &Inputfile=
- &Filepath=
- &Path=
- &Data=
当遇到一个任意文件下载时,我们的一般利用思路:比如下载哪些文件呢?
(1)下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
(2)下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方
(3)下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。如果是linux系统的话,尝试读取/root/.bash_history看自己是否具有root权限。如果没有的话。我们只能按部就班的利用../来回跳转读取一些.ssh下的配置信息文件,读取mysql下的.bash_history文件。来查看是否记录了一些可以利用的相关信息。然后逐个下载我们需要审计的代码文件,但是下载的时候变得很繁琐,
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts //记录每个访问计算机用户的公钥
/etc/passwd // 存用户名的
/etc/shadow // 存密码的
/etc/my.cnf //mysql配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/root/.bash_history //用户历史命令记录文件
/root/.mysql_history //mysql历史命令记录文件
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/var/lib/mlocate/mlocate.db //全文件路径
/porc/self/cmdline //当前进程的cmdline参数
(1)过滤".",使用户在url中不能回溯上级目录 不能目录穿越 ../../
(2)正则严格判断用户输入参数的格式
(3)php.ini配置open_basedir限定文件访问范围
首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识
点击下面链接可以获取
超详细的网络安全学习笔记https://m.tb.cn/h.5DYXdDY?tk=obYuWMaxk8x