web|HW蓝队面试题(初级)

具体实操 之Linux 应急溯源 命令
面试问你linux应急熟吗? 熟,还可以,接触过
主机层面:
问:怎么查最近新增的文件,你用哪些命令?
1.
ls -alt 2、find /
问:用户列表是在哪个目录下,或者怎么查?
Cat /etc/passwd 用户列表
问:临时目录是哪个文件夹?
/tmp ,/etc/ssh
问:怎么查登录成功的用户名,ip,日期?
grep 什么什么 | awk 什么什么 (不建议你去记了,太长了,不经常用一下根本记不住,???
问:什么命令或者怎么看用户登录的时间?
Uptime
问:如何查看当前进程?
Ps -ef 或ps -aux
问:怎么查端口
Top
数据库层面:
直接回答:查错误日志还有查询日志
如果接着问查询命令,具体操作?
就说这个不清楚了,反正你不会就行了,没必要什么都会
怎么绕过WAF? (Web防护强)
原理:由于一些WAF的拦截或者说过滤规则不够完善,拦截的一些关键词可以替换
1.
空格字符绕过
2.
大小写绕过 and=1 AnD 1=1 or ANd=1
3.
添加库名绕过 有些waf的拦截并不会拦截{库名}.{表名}这总形式
4.
脚本语言特性绕过
5.
Union select (大小写 uNIon sELecT 1,2) select= sele%ct 或者 sele/**/ct
6.
http数据编码绕过 (找一些waf识别不了,但是服务器可以识别的编码)
7.
Order by 绕过 (用 into替换掉 order by)
SQL注入:
二次注入 原理
在第一次插入数据的时候,用一些函数对特殊字符进行了转义,参数在过滤后会添加 / 进行转义,但是 / 并不会插入数据库,所以还是保留了之前的数据,开发者就认为插入的数据是可信的,并有进行校验处理,在第二次插入数据查询的时候,比如第一次插入了单引号,第二次直接拼凑构造恶意语句,形成了二次注入 “ ,id =1 or 1=1”
宽字节注入
为了防止注入 ,开启了gpc(过滤特殊字符)。但是你数据库设置gbk(宽字节),就会漏洞,原理是gbk可以逃逸gpc,比如数据库编码与php编码不同
Base64注入
编码之后进行注入,这样你gpc拦截不了,注入后,我再执行程序解码拼接恶意语句注入查??
csrf跟ssrf区别?
csrf 一个是客户端发起,ssrf是从服务端发起的
csrf漏洞原理是?
用户给网站a发起了一个请求,网站a给用户返回了cookies信息,网站a已经信任了用户;
此时,用户又给网站b发了一个请求,网站b给用户发起了访问网站a的请求
Xss 跨站脚本攻击
插入web页面的一个脚本语言攻击,用户点击触发的攻击
哪种类型?
反射,存储,dom
反射性: 已经插入页面等待用户访问的脚本语言攻击
存储型:存在服务器或数据库的一个脚本语言攻击
DOM:在客户端可以通过dom修改里面对象元素的,从而写入脚本语言攻击
如何防御:
1.
增加tokens验证,增加随机验证码
2.
Url添加过滤规则
文件上传
Windows如何提权?
应急溯源的实际案例
怎么回答
中间件解析 漏洞原理
Apache tomcat
勒索病毒我们怎么去处置(应急溯源案例)
第一步:先确认下有没有中病毒,文件被锁,445端口资源被占用等特征。
第二步:拍照保留勒索病毒样本,然后去勒索病毒公开库查能不能解锁。
第三步:断网隔离(逻辑隔离,防火墙阻断445端口,wlan关闭;物理隔离:拔网线)防止???
第四步:验证病毒在主机的存活
下架隔离业务 ,封堵IP,恢复上架
溯源:
Web常见漏洞原理
Sql:
布尔注入
盲注是什么?
就是你在测试注入数据库的时候,数据库没有任何回显,只显示对错。
盲注怎么去利用?用什么函数? (if、sleep)
延时时间注入 用 sleep函数利用
联合注入?什么是联合注入 利用方式 (uninon select)
联合两个或多个表一起注入,但是两个表的字段数必须相同
报错注入? 这是啥
报错注入就是会显示报错信息
报错注入用到的函数(updatexml 只能显示32字节的长度 )
(floor)
堆叠查询
同时查询两个语句,在第二个语句构造恶意语句注入
如何防御?
1.
绑定变量,采用预编译和 参数化接口查询
2.
对特殊字符进行转义
手工注入的思路或者流程?
1、先找注入点,再判断注入类型(整型,字符型)
2、判断字段数(order by limit 数字),字段顺序
3、判断数据库(length,长度,substring(取数据库名))
用burpsuite 设置两个变量,用 数据库文本 进行枚举爆破,筛选200ok的状态码

1.

文件上传突破
1.

前端JS突破(抓包修改文件名或者禁用当前浏览器的JS脚本)
2.
后端突破(1.黑名单:点,空格点,php 1234567,phphtml,分布式上传,文件流绕过…….。2.白名单:00截断,双文件上传,双文件名……)
1.

了解的中间件
IIS7.5,apache,nginx,tomcat,weblogic,jboos
1.
你会解析哪些漏洞
解析漏洞是指服务器应用程序在解析某些精心构造的后缀文件时,会将其解析成网页脚本,从而导致网站的沦陷。
IIS 5.x/6.0解析漏洞
目录解析/xx.asp/xx.jpg
文件解析test.asp; 1.jpg
Apache解析漏洞 1.php.aa.bb.cc
1.
未授权访问漏洞
1.

Redis未授权访问漏洞
2.
Mongodb未授权访问漏洞
3.
VNC未授权访问漏洞
4.
Docker未授权访问漏洞
5.
Hadoop未授权访问漏洞
6…
1.
XXE原理
XXE漏洞就是XML外部实体注入漏洞,通常发生在应用程序解析xml输入时,没有禁止外部实体加载,导致可???,命令执行,内网端口扫描,攻击内网网站,发起dos攻击等。
1.
XXE分类
回显型,无回显型
1.
XXE引入方式
本地引入,外部引入,外部参数实体引入。
1.
遇到XXE盲注解决方法
可以选择使用DNS外带和外部实体注入
在攻击者自己的公网服务器准备一个test.dtd通过base64为将读取的内容加密得到的值当做
1.
知道的渗透框架有哪些
Metasploit,Empire,Cobalt Strike。
1.
WIN提权方法
系统内核溢出漏洞,系统配置错误提权,组策略首选项提权,绕过UAC,令牌窃取,sc命令提权………。
1.
Linux提权
Dirty Cow提权,sodu提权,内核提权………。
1.
Dirty Cow提权
脏牛提权
1.
数据库提权
Mysql(mof提权,udf提权,vbs启动项提权)
Sqlserver(xp_cmdshell 扩展存储函数提权;差异备份提权)
1.
UDF提权的常用命令
Select cmdshell(‘netstat -an’);
Drop function cmdshell
Select cmdshell(‘net user yonghuming mima /add’);
Select cmdshell(‘ipconfig/all’);
1.
VBS启动项提权
先通过webshell连接数据库建立表将vbs脚本写入表中,导入启动项,在vbs脚本后面加上“0”表示不弹出cmd窗口,静默运行。该方法是在udf提权失败的情况下将vbs插入启动项系统重???vbs???
1.
Linux下的MySql提权
Mysql -hlocalhost -uroot -p
System useradd hacker
System passwd hacker
1.
Sqlmap
强大的注入工具,基本所有数据库都可以注入
关键函数 -is-dba ; -dbs ; -current-db ; -user ; random-agent ; -passwords ; -threads ; ………。
1.Cookie注入(sqlmap.py -u http://www.xxx.com?id=1注入点–cookie=“cookie值”–current-db)
2.post注入(sqlmap.py -r “数据包地址” -p “制定的参数” -dbms 需要制定的数据类型)
3.get注入(sqlmap.py -u “注入点地址” -dbs 需要的参数)
4.sqlmap进行交互式写shell(1.前提:需要最高权限,知道web网站的绝对路径,能获取cookie ; 2.sqlmap.py -u “注入点地址”–cookie=“cookie值”–os-shell 3.echo “一句话木马”>网站绝对路径 4.输入网站的绝对路径 5.传木马)
1.
Nmap
强大且实用的网络扫描主机检测工具
nmap www.baidu.com 扫描单个主机
nmap 192.168.1.1 扫描单个主机
nmap 192.168.1.1/24 扫描整个子网
nmap -iL ip.txt 扫描批量IP
nmap -p80,21,23 192.68.1.1 扫描主机上是否开放80 21 23端口
nmap -sS 192.168.1.1 半开放扫描
nmap --script==vuln
nmap -oN 保存扫描结果
1.
MSF
强大的渗透框架
常用命令
Background 让meterpreter处于后台
Sessions -i number 与会话进行交互 number表示第n个session
quit 退出会话
shell获取命令行
cat c:\boot.ini 查看文件内容
upload /root/desktop/netcat.exe c:\ 上传文件到目标主机
download 0xfa.txt /root/desktop 下载文件到本地、
edit c:\boot.ini 编辑文件
getsystem 提权操作….
还可以使用msf制作免杀木马
1.
SQL注入Bypass手法
等量替换;参数污染;编码绕过;sql特性
1.
文件上传怎么绕过
前端验证绕过;Mime限制扩展名绕过;更改后缀名绕过;伪静态文件绕过;00截断;文件包含绕过;二次渲染……。
1.
命令执行怎么绕过
管道符号绕过;空格绕过;%0a,%09;重定向绕过;变量拼接;单/双引号;编码绕过;反斜线绕过;命令换行绕过…….。
1.
PHP反序列化
1.

渗透流程
信息收集à发现漏洞à验证漏洞à编写渗透报告
1.
怎么做信息收集
收集域名信息,whois查询,备案信息查询,敏感信息,子域名查询,收集常用端口,指纹???IP???
1.
了解的端口
Web:80 Tomcat:8080 Mysql:3306 Oracle:1521 MSSql:1433 PostgreSQL:5432 SMB:445 FTP:21 SSH:22 Telnet:23 HTTPS:443 VNC:5900 RDP远程桌面:3389
1.
如何手工快速判断目标是Windows还是Linux服务器
从PING命令的回显可以判断操作系统类型,
ping Linux内网机器的TTL为64
ping Windows内网机器的TTL为126
linux大小写敏感,windows大小写不敏感
1.
为何一个Mysql的数据库站只有一个80端口开放
更改了端口,没有扫描出来;站库分离;3306端口不对外开放
1.
3389无法连接的情况
服务器在内网;做了TCP/IP筛选;做了IP安全策略或者自带防火墙;端口被修改;管理员设置了终端登录权限只有指定用户可以。
1.
编辑器漏洞
1.

Access扫出后缀为ASP的数据库文件,访问乱码,如何实现本地利用
下载下来,直接改后缀名为.mdb
1.
注入时可以不用and或or或xor,能直接order by开始注入吗?为什么
And/or/xor,前面的1=1,1=2步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省去。
1.
SQLserver有几种提权方式?怎么提权?
更改sa口令;简单修补sa弱口令;xp_cmdshel提权;沙盒提权;Job提权;镜像劫持。
1.
CSRF,XSS,XXE有什么区别,及修复方式
XSS与CSRF区别
方向不一样
Xss主要通过劫持用户信息,主动的去通过劫持的用户信息去攻击
Csrf主要通过伪造请求,将自己的请求伪装成正常的请求,通过用户去访问正常网站
对象不一样
Xss主要攻击客户端
Csrf主要通过伪装去访问服务端
方法不一样
Xss不需要登录 直接在页面进行语句构造进行攻击或脚本攻击
Csrf需要有被伪装攻击用户的登录信息
XXE
XXE是XML的外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全???。
修复方式
XSS:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、输出???html???。
CSRF:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer
XXE:XML解析库在调用时严格禁止对外部实体的解析
1.
如何防止CSRF
首先XSS漏洞先防护好, 针对重要的服务:比如网站的积分,涉及用户利益的以及重要信息的最好用ajax请求,使用token验证。这样可以防止token被攻击者获取。验证referer来源。
1.
OWASP Top10 都有哪些?
1.

注入
2.
失效的身份验证
3.
敏感信息泄露
4.
XML外部实体 XEE
5.
失效的访问控制
6.
安全配置错误
7.
跨站脚本XSS;跨站请求伪造CSRF
8.
不安全的反序列化
9.
使用含有已知漏洞的组件
10.
不足的日志记录和监控
1.

代码执行 文件读取 命令执行的函数有哪些?
1)代码执行:
eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function
2)文件读取:
file_get_contents(),highlight_file(),fopen(),read
file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等
3)命令执行:
system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()
1.
文件包含伪协议
PHP伪协议,data伪协议,file协议……。
1.
OSI七层协议
物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
1.
TCP3次握手与4次挥手
三次握手
第一次握手:客户端发送SYN到服务器并进入等待状态
第二次握手:服务器收到SYN包确认客户端的SYN(ack=x+1),同时自己也发送一个SYN包(SYN=Y)即SYN+ACK,此时服务器进入SYN_RECV状态
第三次握手:客户端收到服务器的SYN+ACK包 向服务器发送一个ACK确认包,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
四次挥手
第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据连接,但此时主动关闭方还可以接收数据。
第二次挥手:被动方收到FIN包后发送一个ACK给对方,确认序号为收到的序号+1(与SYN相同,一个FIN占用一个序号)
第三次挥手:被动方发送一个FIN,用来关闭被动方和主动方的数据传输。
第四次挥手:主动关闭方收到FIN后,发送一个ACK到被动方,确认序号为收到序号+1,彻底与其断开连接。
1.
TCP/UDP区别
TCP(传输控制协议):可靠的面向连接,可传输大量数据,但传输速度慢
UDP(用户数据报协议):不可靠的非面向连接,传输少量数据,传输速度快
1.
Linux与Windows查看系统命令和杀死进程的命令
Linux
Windows
uname 查看系统版本
systeminfo 查看系统信息
free 显示内存
wmic->memorychip 查看内存
uptime 查看CPU
wmic->cpu get * 查看cpu
ps 查看进程
tasklist 查看进程
fdisk 查看硬盘
diskpart 磁盘工具
kill 杀死进程
taskkill 杀死进程
1.

Linux/Windows的安全加固
Linux安全加固
Windows安全加固
1.检查密码有效期与复杂度,账户验证失败次数限制
2.历史命令设置
3.系统未限制默认root账户登录模式未配置su wheel only yes
4.检查是否使用PAM认证模块禁止wheel组以外的用户su为root
5.操作系统启用NTP
6.及时更新补丁升级系统
7.关闭不必要的端口与服务
1.检查Windows系统密码复杂度策略
2.检查Windows系统锁定策略
3.开启服务器审计策略
4.登录连接超时及自动推出策略
5.终端服务配置RDP安全层
6.权限分离
7.关闭不必要的端口与服务
8.更新补丁
9.安装杀软
1.

常见的安全设备
防火墙,安全中间件,授权证书系统,公开密钥基础设施,防病毒软件,蜜罐,入侵检测,入侵防御,WAF,SOC安全运营中心,云安全…。
1.
溯源介绍与溯源方法
溯源概述:
溯源方法:
1.
Sql注入漏洞有哪些利用方式
SQL注入根据注入点可以分为数值型注入和字符型注入
根据注入方式可以分为联合注入,报错注入,布尔盲注,时间盲注,二次注入,堆叠注入,宽字节注入和HTTP Header注入
其中HTTP Header注入又分 Referer注入 , Cookie注入 和 User-agent注入
时间盲注又有一种替代方式,叫DNSlog注入,也叫带外注入
1.
Sql注入无回显的情况下利用
利用DNSlog实现无回显的SQL注入
1.
网站常见的文件上传点有哪些?
1.

文件上传漏洞绕过方法
前端修改允许的类型;burp抓包修改Content-Type: 为允许的字段;禁用javascript;特殊文件名绕过;文件名大小写绕过…。
1.
WAF原理与绕过
【web|HW蓝队面试题(初级)】WAF原理
WAF最基本的防护原理为特征规则匹配,将漏洞特征与设备自身的特征库进行匹配比对,一旦命中,直接阻断,这种方法能够有效防范已知的安全问题,但是需要一个强大的特征库支???
WAF绕过

    推荐阅读