渗透面试题(1)
常用渗透流程
信息收集:
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安全检测,敏感信息,通信数据传输,暴力破解,任意文件上传,越权访问,未授权访问,目录遍历,文件包含,重放攻击(短信轰炸),服务器漏洞检测,最后使用漏扫工具等;
漏洞利用&权限提升:
1. mysql提权:serv-u提权,oracle提权;
2. Windows: 溢出提权;
3. Linux:脏牛,内核漏洞提权;
清除测试数据&输出报告:
日志、测试数据的清理 总结,输出渗透测试报告,附修复方案;
复测:
验证并发现是否有新漏洞,输出报告,归档.
常见面试题
1、MySQL注入点,root权限。用工具对目标站直接写入一句话,需要哪些条件?
root权限以及网站的绝对路径。
例如C;\\wwwroot\
2、为何一个MySQL数据库的站,只有一个80端口开放?
1)更改了端口,没有扫描出来
2)站库分离
3)3306端口不对外开放
3、MySQL的网站注入,5.0以上和5.0以下有什么区别?
5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名;
5.0以下是多用户单操作,5.0以上是多用户多操做。
4、MySQL写WebShell有几种方式,利用条件?
1)union select 后写
lines terminated by 写入
lines starting by 写入
fields terminated by 写入
COLUMNS terminated by 写入
2)root权限
GPC关闭,magic_quotes_gpc=On
有绝对路径(读文件可以不用,写文件必须)
没有配置–secure-file-priv
成功条件:有读写的权限,有create、insert、select的权限
5、MySQL常用注释
#
--[空格]或者是--+
/* */
6、MySQL数据库如何增删改查?
增:创建数据库 create database
删 :删除数据库 drop database
改 :update 表名 set 字段=值 where 条件
查 :查看表内容select * from 表名
7、SQL注入分类?
1)按数据类型分:
整形注入(不需要闭合,不需要注释符号)
字符型注入(需要闭合,需要注释符号)
2)按注入语法分:
联合查询
报错注入
布尔型注入
延时注入
多语句查询注入
8、SQL注入如何防御?
1.对进入数据库的特殊字符('"\尖括号&*;等)进行转义处理,或编码转换。
2.严格限制变量类型,数据库中的存储字段必须对应为int型。
3.数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
4.网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
5.严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
6.避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
7.在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。
9、SQL注入常用函数
user() 当前用户名
database() 当前所用数据库
current_user() 当前用户名(可以用来查看权限)
version() 数据库的版本
@@datadir 数据库的路径
load_file() 读文件操作
into outfile()/into dumpfile 写文件操作
concat(str1,str2..)字符串直接连接
group_concat(str1,str2)使用逗号作为分隔符
10、延时注入如何来判断?
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1) concat_ws(sep,str1,str2)
11、报错注入函数有哪些?
floor():向下取整,即舍掉小数部分
extractvalue():对XML文档进行查询的函数
updatexml():是更新xml文档的函数
exp():以e为底的指数函数,会在参数大于709时溢出,报错
12、union all与union的区别是?
去重复
13、当空格被过滤了,你如何绕过?
%09
%0A
%0D
+
/*|--|*/
/*@--|*/
/*?--|/
/*|%20--%20|*/
都可替代空格
14、在登录框注入的时候,输入--+注释符不可以当注释符?
在登录框--+被带入数据库,而--+并非注释符,--空格才是。在URL里可以用是因为会+会自动转码为空格。
15、sqlmap,怎么对一个注入点注入?
1)如果是get型号,直接,sqlmap -u "诸如点网址"
2) 如果是post型诸如点,可以sqlmap -u "注入点网址” --data="post的参数"
3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用号替换,放到文件里,然后sqlmap -r "文件地址"