网络安全面试题
##### 报错注入有哪些函数
* updatexml注入
* 载荷注入
* insert注入
* updata注入
* delete注入
* extractvalue()注入
##### 注入防御方法
* 涵数过滤
* 直接下载相关防范注入文件,通过incloud包含放在网站配置文件里面
* PDO预处理,从PHP 5.1开始,php可以通过PDO的prepare预处理函数执行sql语句
##### mysql写webshell注入点需要哪些条件
* 需要知道远程web目录
* 需要知道MySQL root权限
* 需要知道远程目录有写入权限
* 需要数据库开启secure_file_priv 相当于secure_file_priv的值为空,不为空不充许写入webshell (默认不开启,需要修改mysql.ini配置文件)
##### 数据库注入常见的函数
* database()、user()、version()、system()、concat()
* database这个函数返回当前正在连接的数据库名
* 提供当前数据库会话的用户名
* 返回数据库服务器的版本信息
* 可以用来执行操作系统级别的命令
* concat这个函数用于连接多个字符串或表达式
##### mysql数据库的账号密码保存在哪里
* 数据库最高权限是root 密码保存在数据库user表中;密码条用musql 5特有的加密,cmd5解密
##### apache的默认路径
* /etc/apache2/httpd.conf 或
* /etc/httpd/conf/httpd.conf
##### apache的日志文件路径
* Linux
* 错误日志:/var/log/apache2/error.log
* 访问日志:/var/log/apache2/access.log
* Windows(假设Apache安装在默认的C:\\Apache24目录下)
* 错误日志:C:\\Apache24\\logs\\error.log
* 访问日志:C:\\Apache24\\logs\\access.log
##### mysql4与5的注入区别
* MySQL 4版本数据库由于存在着字符转义与不支持字句查询的情况,因此在注入攻击上存在着很大的局限性,只能采用类似Access的方法进行查询猜解。 首先,利用order by获得当前表的字段数,再使用union select联合查询来获取想要的数据库信息。使用union select联合查询数据库时,由于不知道数据库中的表名与字段名,因此只能像Access一样直接用常见表名和字段名进行猜测判断。
* MySQL 5版本由于information_schema库的存在,注入攻击相对来说方便了许多 通过load_file()函数来读取脚本代码或系统敏感文件内容,进行漏洞分析或直接获取数据库连接账号、密码。 通过dumpfile/outfile函数导出获取WebShell。
##### mysql写webshell的语句如何写
*
union select "<?php @eval($_POST['123']);?>",2 into outfile "C:\\phpStudy\\WWW\\123.php"+--+&Submit=Submit
##### sqlmap的post注入用什么参数
* -r
##### sqlmap的cookie注入加什么参数
* --level ≥2
* 执行测试的等级(1-5,默认为1)
##### sqlmap检查user-agent和refere头用什么参数
* --level ≥3
##### sqlmap获取表名
* --tables -D 数据库名
##### sqlmap的get注入用什么参数
* -u
##### sqlmap注入显示paybad
* -v 3
##### sqlmap获取当前数据库表名
* --current -db
##### sqlmap当前所有数据库名
* --dbs
##### sqlmap获取字段名
* --columns -T user(表) -D abc(库)
##### sqlmap指定参数注入
* -p
##### sqlmap获取当前用户
* --current-user
##### sqlmap列出数据库所有用户
* --users
##### sqlmap进入命令行产生shell交互
* --os-shell
##### sqlmap绕过waf用什么参数
* --tamper
##### xxs分类
* 反射型
* 一次性所见即所得,不与数据库交互
* 存储型
* 交互的数据会被存在数据库里,永久性存储,具有很强的稳定性
* DOM型
* 不与后台服务器产生数据交互,通过前端的dom节点形成的xss漏洞
##### xss能做什么
* 劫持用户cookie
* 挂马
* 键盘记录
* 钓鱼攻击
##### xss的原理及防御方法
* 原理:参数给变量未过滤,直接把变量输出;在输出的时候未经html实体编码
* 防御:对输入进行过滤;对输出进行html实体编码
##### 怎么判断网站使用的struts2 框架
* 网站URL中是否存在 .action .do结尾的链接
##### 看监控时看过哪些安全设备
* 青藤云--EDR
* 奇安信--天眼
* 安恒明御API攻击平台--API
* 绿盟黑洞--DDOS
* 天阗入侵检测系统--IDS
* 前清入侵防御系统--CPS
* 网络检测与响应--NDR
##### 天眼看监控时看那些东西
* 威胁感知--告警列表--攻击结果
##### 天眼被攻击时有哪些提示
* 看攻击结果:失败、失陷、企图、攻击成功
##### 天眼的五元组由哪几部分
* 源ip地址、目的ip地址、源端口、目的端口、协议
##### 天眼监控设备的功能
* 传感器、沙箱、分析平台
##### 敏感信息收集
* 工具:7kb、破壳、Google back
* 网站查询:微步在线、威胁情报、天眼查、钟馗之眼
##### 反序列化漏洞产生的原理
* serialize() 和 unserialize() 在 PHP内部实现上是没有漏洞的,之所以会产生反序列化漏洞是因为应用程序在处理对象、魔术函数以及序列化相关问题的时候导致的。
* 当传给 unserialize() 的参数可控时,那么用户就可以注入精心构造的 payload。当进行反序列化的时候就有可能会触发对象中的一些魔术方法,造成意想不到的危害。
##### 命令执行测试方法
* \&
* \&\&
* \|
* \|\|
##### 命令执行原理
* 命令执行原理:设计者在编写代码时没有做严格的安全控制,导致攻击者通过接口或相关参数提交"意想不到"的命令,从而让后台进行执行,从而控制整个后台服务器 。
##### 命令执行一般出现在哪些地方
* 只要带参数的地方都可能出现命令执行漏洞
* 常见的路由器、防火墙、入侵检测、自动化运维平台
##### strus2指纹信息特征
* 扩展名:.action或.do(URL显示)
* 流量特征:memberAcecess,getRuntime,println,双引号, 单引号, 等号, 括号之类的符号
##### thinkphp指纹信息特征
* 在url栏随意添加字符报错,出现倒笑脸
##### Spring 框架指纹信息特征
* 通过 wappalyzer 插件识别
* 看 web 应用程序的ico小图标是一个小绿叶子
* 看报错页面, 显示 type=not fonud status=404
* 按 f12 看 X-Application-Context头, 显示 sini-oa-sping-boot:server_db:9096
##### apache shiro 框架指纹信息特征
* 数据返回包中包含 rememberMe=deleteMe 字段
##### JWT指纹信息特征
* 请求头的Authorization字段,值通常以Bearer开头,后跟JWT令牌
* JWT令牌结构三部分组成:
* Header:包含令牌的类型(JWT)和加密算法
* Payload(载荷):包含声明(Claims)
* Signature:加密部分,用于验证JWT完整性
##### XXS漏洞原理
* 参数经变量未经过滤,直接把变量输出,输出未经HTML实体编码
##### XSS如果script、单引号、双引号被过滤怎么绕过
* 换html标签\<img\>\</img\>标签\<video\>\</video\>、大小写双写,注解干扰绕过
##### mssql数据库权限能做什么
* sa--最高权限
* dbowner--做数据差异备份
* publiic--最低权限,可以查看数据库数据
##### SQL注入原理
* 参数未经处理直接带入数据库查询操作
##### SQL注入分类
* 数字型、字符型、搜索型、xx型
##### CSRF原理
* 程序员开发的时候,未对相关页面进行token和referer判断,造成攻击者可构造自己的url地址欺骗目标用户进行点击
##### 如果如果一家公司让你去采购漏洞扫描器,主要看几个点
* 误报率、爬行能力、漏洞率
##### 渗透中,你用过哪些漏洞扫描器
* web扫描:awvs、appscan、netspark、xray
* 系统扫描:天镜、nessus、nmap
* 绿盟扫描器:极光扫描器(系统)
##### nmap中ping扫描用哪个参数
* -sn
##### nmap探测版本信息
* -sV
##### ftp的端口
* 21
##### weblogic端口
* 7001/7002
##### nmap探测操作系统类型及版本
* -O
##### nmap绕过ping扫描(禁ping扫描)
* -Pn
##### nmap探测漏洞
* --script
##### nmap中tcp端口扫描
* -sS
##### nmap中udp端口扫描
* -sU
##### nmap批量扫描目标地址
* -iL IP.txt'
##### nmap将扫描结果生成报告
* -oX(中断不保存)
* -oA(中断后也保存)
##### CSRF、SSRF和重发攻击有什么区别
* CSRF是跨站请求伪造攻击,由客户端发起
* SSRF是服务端请求伪造,由服务器发起
* 重放攻击是将截获的数据包进行重放,达到身份认证等目的
##### windows系统中毒了,应急方法
* 一、检查系统账号安全
* 1、检查服务器是否有弱口令、可疑账号、隐藏账号、克隆账号、远程管理端口是否对公网开放
* 2、Win+R打开运行,输入eventvwr.msc打开操作系统日志,查看远离元登陆时间
* 二、检查异常端口、进程
* 1、使用netstat -ano 检查端口连接情况,是否有远程连接、可疑连接(主要定位ESTABLISHED)
* 2、根据netstat定位出的pid,再通过tasklist命令进行远程定位tasklist \| findstr PID
* 3、可以使用 D 盾_web 查杀工具、火绒剑、 XueTr 等工具进行判 断可疑进程(如蓝色、红色进程、没有签名验证信息的进程、没有 描述信息的进程、进程的属主、进程的路径是否合法、 CPU 或内存资源占用长时间过高的进程)
* 三、检查启动项、计划任务、服务
* 1、检查服务器是否有异常的启动项
* 2、检查计划任务
* 3、检查服务自启动
* 四、检查系统相关信息
* 1、查看系统版本以及补丁信息
* 2、查找可疑目录及文件
* 五、自动化查杀
* 用 360、卡巴斯基等病毒查杀系统病毒木马, Web 可以用 D 盾、河马工具查杀 Webshell 后门
* 工具查杀 Webshell 后门
* 六、日志分析
* 用 360 星图日志分析工具进行分析攻击痕迹或手工结合 EmEditor 进行日志分析
##### linux系统中毒了,应急方法
* 1、检查用户及密码文件/etc/passwd 、/etc/shadow 是否存在多余帐号,主要看一下帐 号后面是否是 nologin,如果没有 nologin 就要注意;
* 2、通过 who 命令查看当前登录用户(tty 本地登陆 pts 远程登录)、w 命令查看系统 信息, 想知道某一时刻用户的行为、 uptime 查看登陆多久、多少用户,负载;
* 3、修改/etc/profile 的文件,在尾部添加相应显示时间、日期、 ip、命令脚本代码, 这 样输入 history 命令就会详细显示攻击者 ip、时间历史命令等;
* 4、用 netstat -antlp\|more 命令分析可疑端口、 IP 、PID,查看下 pid 所对应的进程文件 路径, 运行 ls -l /proc/$PID/exe 或 file /proc/$PID/exe($PID 为对应的 pid 号);
* 5、使用 ps 命令, 分析进程 ps aux \| greppid
* 6、使用 vi /etc/inittab 查看系统当前运行级别,通过运行级别找到/etc/rc.d/rc\[0\~6\].d 对应目录是否存在可疑文件;
* 7、看一下 crontab 定时任务是否存在可疑启用脚本;
* 8、使用 chkconfig --list 查看是否存在可疑服务;
* 9、通过 grepawk 命令分析/var/log/secure 安全日志里面是否存在攻击痕迹;
* 10 、chkrootkit 、rkhunter 、Clamav 病毒后门查杀工具对 Linux 系统文件查杀;
* 11、如果有 Web 站点,可通过 D 盾、河马查杀工具进行查杀或者手工对代码按脚本木 马关键字、关键涵数(evel 、system 、shell_exec 、exec 、passthru system 、popen)进行查
##### Windows 和 Linux 的日志文件
* Linux 日志文件通常保存在/var/log 目录
* Windows 存放在 C:\\Windows\\System32\\winevt\\Logs 目录
##### 应急响应流程
* 准备:信息收集,工具准备
* 检测:了解资产情况,明确影响, 尝试进行攻击路径溯源
* 遏制:关闭端口,服务,停止进程,拔网线
* 根除:通过杀毒软件,清除恶意文件,进程
* 恢复:备份,恢复系统正常
* 跟踪:复盘全貌,总结汇报
##### Linux 怎么启动服务、怎么查看服务状态
* 1、查看 linux 系统下所有的服务, 使用命令: chkconfig --list
* 2、chkconfig --level 服务运行级别 服务名称 on\|off
* 如: chkconfig --level 345 nfs off
##### hw遇见比较多的报警有那些
* 弱口令、命令执行、反序列化、任意文件读取、SQL 注入等
##### 内存马原理
* 原理:就是在 web 组件或者应用程序中,注册一层访问路由,访问者通过这层路由,来执行我们控制器中的代码
##### 内存马清除方式
* 1.利用条件竞争把 shell 内容改写或者清除比较好用 2.重启服务 3.提前占用他的目录名。也可以直接使用工具 Arthas 发现内存马,再使用 D 盾或河马查找。
##### 天眼网络日志检索使用过吗? HW 中印象深刻的告警有哪些呢?
* 印象深刻的主要有:反弹 shell、暴力破解、弱口令、反序列化、命令执行等
##### CS 特证码
* 1、默认端口是 50050
* 2 、请求的 url 为/jquery-3.3.1.min.js,返回包的大小为 5543
* 3、在流量包中可以从域名/IP、指令长度(心跳长度默认 5 秒)、指令结果长度(返回结 果包长度) 、指令执行时间(POST 包与指令包时间间隔)
* 4、cookie 有一串固定的加密值
##### MSF 特证码
* 1 、端口号: msf 默认使用 4444 端口作为反向连接端口
* 2 、数据内容: msf 数据包通常包含特定字符串:("meterpreter" 、"revshell" 等)
##### WINDOWS 安全事件 ID
* 4624 事件 ID 表示成功登陆;
* 4625 事件 ID 表示登陆失败的用户;
##### sturts2 命令执行的流量特征
* sturts2 命令执行数据包或 userage 头里面含有 apache sturts2
##### java 反序列化的流量特征
* java 反序列化一般 post 包 里面含有 xml 语言写的攻击 payload
##### log4j 和 log4j2 有什么区别
* log4j 核心 jar 包就一个;log4j2 的核心 jar 包有两个;2、Apache 对 log4j 和 log4j2 在 groupId 上也做了明确的区分,就是 package 的路径不同了。
##### 设备流量非常大, 怎么快速针对这个设备进行处理分析
* 把设备告警导到 exel 表里面批量分类处理,把攻击 IP 加入到 WAF 或防火墙里面。
##### 监控过程中是否遇到过被攻击成功的事件,是怎么处理的?
* Owasp top 10 随便说一个,处理方式,把攻击 IP 通过防火墙或 Waf 加入黑名单,接着通知 开发部门修复漏洞。
##### 常用的 Webshell 检测工具
* D 盾、河马、Web shell Detector 、PHP Malware Finder
##### Liunx 系统中任何权限都能访问的临时文件位置
* /var/tmp
##### 如何判断是钓鱼邮件
* 1 、以公司某部门的名义,如安全部、综合部, 使用正式的语气, 内容涉及到账号和密 码等敏感信息, 可能带有链接地址或附件,制造紧张氛围,比如 24 小时内今日下班前完整 账号密码修改。
* 2 、看发件人 设备上也会报 IP , 上微步查一下 IP 是不是恶意 IP ,邮件的发件人和内容是不是 正常的业务往来
* 附件放到沙箱里 看看是否有问题
* 有的邮件会提示你邮件由另一个邮箱代发,或者邮箱地址不是本公司的, 再或者邮箱地 址是 qq 或者 163 等个人邮箱的
##### WAF 和 IPS 的区别
* IPS 位于防火墙和网络的设备之间,防火墙可以拦截底层攻击行为,但对应用层 的深层 攻击行为无能为力。 IPS 是对防火墙的补充。综合能力更强一些;WAF 是工作在应用层的防 火墙, 主要对 web 请求/响应进行防护。
##### SQL 注入有哪些常见的特征
* 关键字: select,where、order、union、update、floor、exec、information_schema、 extractvalue 、delete 、insert 、ascii 、table 、from 等
* sql注入函数: user() 、@@version 、ctxsys.drithsx.sn()等针对双引号、单引号、等号之 类的符号, 可能会进行相关的编码操作, 例如 url 编码,需要注意
##### 木马如果是 cs 生成或木马挂了 cdn 如何找到真实域名
* 通过 fofa 里面的 title 或找到域名下面的任意一个文件取出他的 hash 再 通过 fofa 跟据 hash 找真实 IP、ping 一个不存在二级域名(开启了泛域名解析 才可以)、在同一服务器上面是否存在二级域名(如果二级域名和 CDN 的域名 在同一服务器也可以找到真实 IP)、在线 DNS 历史记录查找等
##### 读过的技术书籍(学习的途径)
* 《白帽子讲 web 安全》、《ios 应用逆向工程-第 2 版》、《加密与 解密-第 3 版》、《汇编语言-第 2 版》、《OWASP-MSTG》
##### burpsuite 常用的功能
* 仪表盘、漏洞扫描、代理、测试器、重发器、定序器、编码器、对比器、插件扩展、项目选项、用户选项等
##### 拿到一个待检测的站或给你一个网站,你觉得应该先做什么
* 0确定渗透测试注意事项
* 签合同、授权书、保密协议
* 通知客户数据库备份、源代码备份
* 禁止进行登录扫描
* 降低扫描线程
* 增删改查操作手工进行
* 禁止脱裤、跑数据、传shell
* 执行命令使用无害命令whoami
* 不能进行dos及ddos攻击
* 1)信息收集
* 1.获取域名的 whois 信息,获取注册者邮箱姓名电话等。
* 2.通过站长之家、明小子、k8、站长之家等查询服务器旁站以及子域名站点,因为主站一般
* 比较难, 所以先看看旁站有没有通用性的 cms 或者其他漏洞。
* 3、通过 DNS 域传送漏洞、备份号查询、SSl 证书、APP、微信公众号、暴力破解、DNS 历史记录、 K8 C 段查询、Jsfinder、360 或华为威胁情报、证书序列号获取企业二级域名与 ip。
* 4 、通过 Nmap 、Wappalyzer、御剑等查看服务器操作系统版本,web 中间件, 看看是否存在已知的漏洞, 比如 IIS ,APACHE,NGINX 的解析漏洞
* 5.通过 7KB、破壳扫描网站目录结构, 看看是否可以遍历目录, 或者敏感文件泄漏,比如 php探针(phpinfo.php)、管理员备份文件。
* 6.google hack 进一步探测网站的信息,后台,敏感文件
* 7、敏感信息收集,如 github 源码、用 7kb、破壳扫源代码泄露(.hg、.git、cvs、svn、.DS_store 源代码泄露)、google hack、接口信息泄露、社工信息泄露、邮箱地址信息收集、网盘搜索、钟馗之眼、天眼查、威胁情报、微步在线等
* 8、通过 Wappalyzer、御剑工具对网站指纹识别(包括,cms ,cdn,证书等),dns 记录
* 2)漏洞扫描
* 1)用 AWVS、APPSCAN、长亭科技的 Xray 等扫描器检测 Web 漏洞, 如 XSS,XSRF,sql 注 入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载, 文件包含, 远程命令执行,弱口令, 上传, 编辑器漏洞, 暴力破解等
* 2)用 namp、天镜、Nessus、极光等扫描系统 ip,对扫描出来的高危漏洞进行测试,如 ms08- 067、ms17-010、ms12-020、ms15-035、ms19-0708、永恒之蓝 2 代、cve-2017-7494(samba)、 cve-2014-6271(破壳) 、php cgi 等相关漏洞验证。
* 3)漏洞利用
* 利用以上的方式拿到 webshell,或者其他权限
* 4)权限提升
* 提权服务器,比如 windows 下 mysql 的 udf 提权, serv-u 提权, windows 低版本的漏洞, 如 iis6,pr,巴西烤肉, linux 脏牛漏洞, linux 内核版本漏洞提权, linux 下的 mysql system 提权以 及 oracle 低权限提权
* 5) 日志清理
* 操作系统、中间件、数据库等日志进行清除
* 6)总结报告及修复方案