051-WEB攻防-前后台功能点&文件下载&文件读取&文件删除&目录遍历&目录穿越
#知识点:
1、文件安全-前后台功能点-下载&读取&删除
2、目录安全-前后台功能点-目录遍历&目录穿越
演示案例:
➢文件安全-下载&删除-案例黑白盒
➢目录安全-遍历&穿越-案例黑白盒
#文件安全-下载&删除-黑白盒
1、下载=读取(获取源码)
文件下载
利用:下载敏感文件(数据库配置,中间件配置,系统密匙等文件信息)
-
常规下载URL:https://67.202.70.133/files/readfile.php(直接访问,会被默认以php执行文件解析,不能下载到本地,也不能看到源码)
-
可能存在安全URL:https://67.202.70.133/files/readfile.php?file=readfile.php (下载协议下载php文件 ,源码被下载至本地可以被看到)
-
https://67.202.70.133/files/readfile.php?file=.../configuration.php
- 依次通过下载**
index.php
**主页文件,根据源码泄露信息,确认是==Joomle搭建的== - 查找Joomle默认的数据库配置文件,并==进行下载
configuration.php
,发现泄露数据库密码用户名等隐私信息==
- 依次通过下载**
文件读取
-
常见的敏感信息路径:
-
Windows系统:
C:\boot.ini //查看系统版本 C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件 C:\Windows\repair\sam //存储系统初次安装的密码 C:\Program Files\mysql\my.ini //Mysql配置 C:\Program Files\mysql\data\mysql\user.MYD //Mysql root C:\Windows\php.ini //php配置信息 C:\Windows\my.ini //Mysql配置信息
-
Linux/Unix系统:
/root/.ssh/authorized_keys //如需登录到远程主机,需要到.ssh目录下,新建authorized_keys文件,并将id_rsa.pub内容复制进去 /root/.ssh/id_rsa //ssh私钥,ssh公钥是id_rsa.pub /root/.ssh/id_ras.keystore //记录每个访问计算机用户的公钥 /root/.ssh/known_hosts //ssh会把每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。 /etc/passwd // 账户信息 /etc/shadow // 账户密码文件 /etc/my.cnf //mysql 配置文件 /etc/httpd/conf/httpd.conf // Apache配置文件 /root/.bash_history //用户历史命令记录文件 /root/.mysql_history //mysql历史命令记录文件 /proc/self/fd/fd[0-9]*(文件标识符) /proc/mounts //记录系统挂载设备 /porc/config.gz //内核配置文件 /var/lib/mlocate/mlocate.db //全文件路径 /porc/self/cmdline //当前进程的cmdline参数
-
-
文件读取的靶场注册登录及应用:
-
https://portswigger.net/web-security/all-labs,最好使用gmail邮箱进行注册 ,其他可能收不到验证邮箱,验证邮箱后,会让你设置用户名,但密码是由portswigger自动生成,复制登录即可(记得关闭代理,不然会登录失败)
-
实验室:文件路径遍历,简单案例 |网络安全学院 (portswigger.net)
- 访问实验室即可开启靶场
- 任意以url的方式打开页面上的图片https://0ae3006a032d097482c3eea700df003b.web-security-academy.net/image?filename=20.jpg发现可以进行替换文件名
- 开启burp抓包,并将抓取的数据包发送至Repeater处,修改其文件头GET /
image?filename=../../../etc/passwd
HTTP/2 - 则返回数据包中会显示,linux服务器中的账户信息
-
2、文件删除(常出现后台中---鸡肋危险)
可能存在安全问题:前台或后台有删除功能应用
利用:常规删除重装锁定配合程序重装或高危操作
-
登录后台,找到可以删除的页面操作,点击删除,并进行抓包,发现数据包中,的删除操作可以进行执行文件名替换(替换为其他文件进行删除),可以将其替换为源码中的install_lock.txt文件,是一个标识文件,通常用于记录或标记应用程序或系统的安装状态。这类文件通常在安装或初始化过程中创建,并用于防止重复安装或初始化。
-
因为删除文件有过滤,在切换为想要删除install_lock.txt文件,要通过
加减../
试探该文件的存在位置,最后试探的结果为:GET /gws3vo/admin_template.php?action=del&filedir=../templets../../install/install_lock.txt
HTTP/1.1 -
查看对应目标目录下的==install_lock.txt文件,已经被删除,再次访问install目录发现需要重装==
-
该操作十分危险容易造成网站崩溃 ,例如:如果删除了页面首页index.php源代码,造成访问失效,访问首页页面则没有图形化等操作
-
删除前
-
删除中
-
删除后
-
#目录安全-遍历&穿越-黑白盒
1、目录遍历
目录权限控制不当,通过遍历获取到有价值的信息文件去利用
- 开启目录索引意味着服务器在处理请求时,如果访问的目录中没有默认的索引文件(如index.html、index.php等),服务器会列出目录中的文件和子目录,以供浏览器访问 。这样的配置可能会==暴露目录结构和文件列表,从而使攻击者更容易发现潜在的目标和漏洞。==
- 通过遍历获取到有价值的信息文件,然后利用它们可能是攻击者的一种常见策略。攻击者可能会查找敏感信息文件,如==配置文件、日志文件、数据库备份等,==并尝试利用这些文件获取进一步的访问权限或执行其他攻击。
- 通过:FOFA:
"index of /" && title=="Index of /" && country="CN"
语句查询,可以查出很多存在目录遍历的漏洞网址
2、目录穿越(常出现后台中)
目录权限控制不当,通过控制查看目录路径穿越到其他目录或判断获取价值文件再利用
- 目录穿越(Directory Traversal)是一种安全漏洞,通常发生在应用程序对用户提供的输入==(如文件路径)进行不足或不正确验证的情况下 ==。攻击者通过**操纵输入,试图导航到系统文件系统的其他目录,可能导致访问敏感文件或目录,进而进行未经授权的操作。**
-
源码限制了访问目录,只能到default及以下包含目录
-
复制对应的目录跳转连接地址,并尝试通过==增加减少(.../)==进行目录穿越。可以访问到未经过容许的目录**
#黑盒分析:
1、功能点
文件上传,文件下载,文件删除,文件管理器等地方
2、URL特征
文件名:
download,down,readfile,read,del,dir,path,src,Lang 等参数名:
file、path、data、filepath、readfile、data、url、realpath等
#白盒分析:
查看源码中是否存在:上传类函数,删除类函数,下载类函数,目录操作函数,读取查看函数等
#海洋cms V7.0+phpstudy配置部署
-
解压到phpstudy存放源码的目录下G:\develop\safety\phpstudy_pro\WWW
-
打开phpstudy→网址,创建网址,配置相关信息
-
打开配置的网址ip和端口http://192.168.137.1:86,进行安装,安装完成登陆后台http://192.168.137.1:86/gws3vo/