1. 为何一个 MYSQL 数据库的站,只有一个 80 端口开放?
更改了端口,没有扫描出来;
站库分离;(渗透技巧见后续)
3306 端口不对外开放。
2. 一个成熟并且相对安全的 CMS,渗透时扫目录的意义?
敏感文件、二级目录扫描;网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点。
3. 在某后台新闻编辑界面看到编辑器,应该先做什么?
查看编辑器的名称版本,然后搜索公开的漏洞。
4. 审查上传点的元素有什么意义?
有些站点的上传文件类型限制是在前端实现的,这时只要增加上传类型就能突破限制了。
5. 如何手工快速判断目标站是windows还是linux服务器?
linux大小写敏感,windows大小写不敏感。
6. 3389 无法连接的几种情况
没开放 3389 端口;
端口被修改;
防护拦截;
处于内网(需进行端口转发)
7. 列举出 owasp top10 2019
1)注入;
2)失效的身份认证;
3)敏感信息泄露;
4)XML 外部实体(XXE);
5)失效的访问控制;
6)安全配置错误;
7)跨站脚本(XSS);
8)不安全的反序列化;
9)使用含有已知漏洞的组件;
10)不足的日志记录和监控。
8. 说出至少三种业务逻辑漏洞,以及修复方式?
密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验证步骤、
找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密码;
身份认证漏洞中最常见的是会话固定攻击和 Cookie 仿冒,只要得到 Session 或 Cookie 即可 伪造用户身份;
验证码漏洞中存在验证码允许暴力破解、验证码可以通过 Javascript 或者改包的方法来进行绕过。
9. 目标站无防护,上传图片可以正常访问,上传脚本格式访问则 403,什么原因?
原因很多,有可能 Web 服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过。
10. 目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
先爆破用户名,再利用被爆破出来的用户名爆破密码;所有和数据库有交互的地方都有可能有注入。
- 站库分离渗透思路技巧总结
1.web 网站:从 web 网站打入进而打站库分离的数据库,内网渗透
2.数据库:从数据库打入进而打站库分离的 web 网站,内网渗透
一、从 web 入口渗透
从 web 入口通常就是通过网站的各种漏洞来 getshell,比如文件上传、命令执行、代码执行、还有 SQL 注入写入一句话(into outfile、日志备份等)。
在获得 web 权限或者有诸如文件读取等漏洞时,我们还读数据库配置文件、对数据库内容分析、查找数据库备份,进而对数据库目标 ip 进行渗透,以便后续操作。
二、从数据库入口渗透
但是这里要说主要是外网暴露的数据库入口点弱口令;web 网站 SQL 注入。
从数据库入口渗透,同样主要是为了获取更大的权限,或者扩展我们的渗透成果,比如从数据库里可以得到一些密码信息,用户名等,在后续的内网渗透中可以很有效的帮助我们。
站点是站库分离的,数据库和 web 不在同一台服务器上,这时候不能写入一句话木马通过 web 去连,因为路径没有用。如果是从 web 端找到的 SQL 注入,那么可以通过以下这些方式去做信息收集、获取权限。
1.MYSQL
(1)定位 web 端 ip 地址
通过查询 information_schema 库中的 processlist 可以查看当前 MYSQL 的连接情况。因为 web 应用会产生查询数据库操作,所以在回显出来的 host 字段中会带回目标的 ip:port。
select * from information_schema.PROCESSLIST;
在得到了 web 端的 ip 我们可以进而对 web 端进行渗透。
(2)load_file () 获取数据库所在服务器的敏感信息
如果没有 secure_file_priv 参数的限制(MySQL5.7 以下)我们还可以用 load_file() 函数对文件内容进行读取。
select load_file('C:/test.txt');# 左斜杠 /
还可以获取网卡信息,比如读:
/etc/udev/rules.d/70-persistent-net.rules获取网卡名称。
/etc/sysconfig/network-scripts/ifcfg-网卡
静态IP
DHCP的话
/var/lib/dhclient/dhclient--网卡.lease
2.MSSQL
(1) 判断是否站库分离
得到客户端主机名
select host_name();
得到服务端主机名
select @@servername;
根据结果判断是否分离,结果一样就可能站库同服务器,结果不一样就是站库分离。
(2)存储过程执行命令
我们可以通过 MSSQL 的存储过程执行系统命令,可以尝试直接提升权限后渗透其他主机,
常用到的两个:
XP_CMDSHELL
SP_OACREATE
可以探测数据库服务器是否出网,通过执行 ping 或者 curl 看是否出网,通常遇到 MSSQL 我们直接就通过命令执行上线了。
同样是数据库,自然其中有一些敏感信息,为了进一步渗透,可以整理密码本或者其他信息。