一叶知安web安全培训_【web安全】记奇安信“渗透测试”培训

本文记录了参与奇安信的渗透测试培训过程,涵盖了Web安全的基础知识和实践技巧,通过0x01章节开始深入探讨Web安全领域。
2386b20cb865a5008c3b0b27671ce360.gif

fc1280c1b40cf864a87c1fff3abe947e.png

f9c2e2db55378f0cb3e4c0a3a802db76.png0x00前言这份笔记记录了2020.7在奇安信培训时的渗透测试,说是渗透测试,是实在找不到太合适的名字了,因为糅杂了很多ctf的东西,所以单纯按照渗透的想法做是不行的。所有的测试需要的端口都要自己扫描出来,大致在2014~2030上,但有些被人玩坏了,以后找时间补上,每道题都有5个flag,没找全就是能力不够。对于端口扫描,直接上御剑干就完了,(顺便一提,御剑这东西扫描可以开到100线程,对本机没太大影响,但服务器不一定能抗得住,所以客户现场不给授权,坚决不干活)

0x01开始

1.2014

4b2c01b94630089e37070960f7abd5e5.png

我们在源码中查不到信息,并且御剑也扫不出来东西,所以只能抓包找结果14c0aaabeecdf1037cb9e720493a0adc.png这里要好好找才能看到,所以这题很ctf,然后跟进这条线索,能得到第一个flag

e70961c159dc2717b79e9665b83a6caf.png

然后查看源码,得到第二个信息f9f36ca7756bbc669ae0f97a7c56f7c9.png继续跟进,他说只有本机才能登陆,那就是提示x-forwarded-for:127.0.0.1了

ce4e35ba7cfd0e93dfff4143c8a7c15f.png

注意改包的时候,不要把XFF头放在最后面,要放在源请求包中间位置,不知道为啥,反正那样不行,我以后会放在Host后面,以下是抓包结果39d090e07cbdc61c3911a8d19c88240e.png能得到第二个flag,并且提示system_skkkwwwwqad/index.php,跟进

45d8a78e2ff1d3552c736e012561893e.png

发现网页URL中好像有?id=1这样能注入的东西,扔进sqlmap里试试fcb4d69d7f580ddf6403e07a7752f5fc.png整挺好,直接有数据库,看着news比较可疑,跟进b86a18f1212d682975d855b27c9def00.pngdump数据库信息,得到第三个flag,并且给出了信息点tool_sssiikopw.phpd58f4c1e49fda1695036322ab4d9f933.png回溯到网页report1那里,发现是secret,看不了,猜测是php伪协议

a03ca42ede37e8f6086eb419a6f41638.png

path=php://filter/convert.base64-encode/resource=flag.php
结果不对。。。到这一步怎么都不对,很气人,还是题做少了,要不应该能大胆怀疑不是这个flag.php了。我们用御剑扫xxx.com:2014/system_skkkwwwwqad/这个路径,看他还藏了什么东西,得到还有robots.txt

dca34009f648c6d914474dc70c2c8af4.png

看一下robots.txt藏了什么东西,得到flag_adwqoeuiouerr.php

dd8f1f725fc32abff950ab51e63134de.png

php伪协议读一下
path=php://filter/convert.base64-encode/resource=flag_adwqoeuiouerr.php

9fbacc68077b502e58204b52cc797a1b.png

解码base64得到第四个flag8d665c3cd86697283bd06c695288ea46.png还给了一个看似一句话木马的东西,好像是想给我们一个一句话的密码,但我们不知道这个木马叫什么,在哪也不知道。这时候我们想到之前看robots.txt的时候,还有这个flag_adwqoeuiouerr.php没看,很可能就是一句话。

584ac713a3ead95757c0490b61e4f8e7.png

连一下,OK1a80f8f97f96bad61adfb866d406dd1c.png这里面应该还能找到一个flag,不找了,可能需要后续提权2.2015

a7667e8d1cfe0a6362857ef7fe95a3e7.png

这道题也不错,首先扔到御剑里扫,发现images,把mt2复制到本地39c1ea5cf6fb6d5d7babb03c928846de.pngwinhex打开,得到flag2413e02382d020b2e7f7cbd8a4e7715f8.png查看login,有账号密码验证,查看源码没有东西,爆破也就那样,没结果

917a1b1d524bb3ebbfb1c6eb0fe995a1.png

我们注意到URL里的page=login,有点文件包含的味道,并且看源码中,page等于什么就跳转到什么,那就文件包含试试a623eee41014bb0690c2f0ee8a446b6e.pngpayload:
?page=php://filter/convert.base64-encode/resource=mysql
(这里的mysql.php我的御剑没有扫出来,旁边大佬的扫出来告诉我的)

e22cd775504d847aa9edee0a084cd05a.png

解base64后得到数据库的账号密码caa796c2c6aacd5213a74c7b4d000958.png然后比较坑的就是数据库的端口,老师直接说的2016,(好像是做的端口映射,直接扫扫不到)连进去之后得到flag10b9a56e90729cfffc75ea01f020b7382.png然后在users表中得到账号密码5e2b2fe0d8a0b29c0f509abf787e2470.png然后把密码解base64,再登录上login

55a81b598e0dc038a394b3ea4bf531ba.png

登陆之后可以上传,先传个php一句话,提示只允许上传图片

f04f7052f9689d9fc5b80438a963716c.png

然后尝试图片马,这里不能抓包改后缀,那应该是传上之后没有解析,虽然菜刀也能连上,但是用处不大回溯到数据库,我们有数据库写权限,所以利用mysql写一句话木马661a6766bbd77446762cb2a4d202b65e.png然后访问一句话,xise连上之后拿到flag3189a1248e10054ff2d7d6753d56ebe2b.png之后传上大马,反弹shell58259989da6dcebbcadee5efb32e2d67.png(尝试提权未成功)3.2017

836c73474c4e38d8df7fcd163ba2b520.png

我个人还是挺怕这种直接就是登录界面的,给人一种被逼着爆破的感觉,很不好,先查看源码,7d591fd25570465c857c7a835b418e85.pngbase64解出来得到第一个flag995eab5d720836b3de6afd456c3c0a52.png然后尝试万能密码,还是比较好的这道题,顺手把网上万能密码的文章抄下来了,以备后用
1' or 1=1#
很舒服得到第二个flag51b36e575426466dd85b0af3f0740abb.pnggo on 进去之后让给一个IP地址82c071f1a870caf2f84316cab7797d8c.png然后我们用管道符 | 命令执行尝试
|ls
得到第二个flage6a59d0136c5184607c1bdccf47e3aee.pngcat 取一下
|cat flllllllllllllllag.txt
9172cfc4f8b7b4240d84f64926353b92.png得到第三个flag,并给出提示信息/123321,看起来这个文件夹里有东西,我们找找
|ls ../
bb9b5fb3f1e0edb80e04fe3a998afbbb.png看到123321之后跟进
|ls ../123321
139bbd73119e6468a537b45bd4465b63.png
|cat ../123321/flag.txt
194ab2e1ee2eca82f00beedf3892f357.png拿到第四个flag,然后别忘了用御剑扫一下

b27c790ae28f26a3a51e4234d9e37402.png

搜索flag字段,找到第五个flagba4a78b3511dd9d02f6099ff2f8fbfbf.png4.2018

d7620d5f2d14a710a56b7fa457efc6f8.png

御剑扫一下

3dff28a71b66b33007e0e72c3bf846c4.png

跟进robots.txt

015bcfdbfd225331a851695d11a21518.png

查看flag1

a6ce2fea109b18042946f459ae87b288.png

还有一个mail的邮箱登录界面,我们暂时也没账号密码,爆破也不成功

82c6792c332f5143944fb157aaebe53b.png

然后跟进usage,整出个这玩意,我之前没见过,但看起来好像是某种后台记录、后台管理之类的东西57d8b7705499dd579b303e2e72e86ef6.png还是很有用的,因为发现了之前御剑没扫出来的xss.php5965a27cf4a69d81b4d5b9063d05f79e.png跟进这个xss.php,是可以用反射型xss的(dom型和存储型没试)

37cebc2dad2cf9602e3cf05f6bcff836.png

然后查看源码发现flag26064667bfd5da297d70b33bf547048d9.png第三个flag就很坑了,这纯看经验吧,我们看到这里的链接是?page=blog,并且我们访问blog,page就等于blog,好像没什么问题

0d1b5614886bd662a720abb48c27acc4.png

然后这里访问contact,page就等于contact,有可能这个page存在文件包含,这个只能说经验了

c1a509af8825bf677273d7cc28483f3a.png

然后用php://filter不行,(好像哪里写过php:filter很靠谱,打脸了),其实php伪协议使用是有条件的,需要allow_url_fopen=on,不需要开启 allow_url_include,详细的文件包含看文件包含.pdf,师傅总结的很好。所以这道题需要用%00截断,然后得到flag3

5f97a224d78bd9e07c6027a8fcf0d9ca.png

在朝后也挺看经验,我们在回顾blog的界面,我们看到第一个blog的id=2,第二个blog的id=5

4d0e4851ec4c76e75624a8a2f2cf0f7d.png

31c4780dc53bad29877e07d434155c50.png

也就是说给一个id就去查询这个id,所以猜测是sql注入,毕竟其他的点也找不到突破口了,sqlmap跑一下,这里需要提醒,sqlmap -u " XXX" --dbs有时候是出不来的,需要--banner --dbs,--banner是获取数据库管理系统对的标识(我也不知道啥意思,但以后都加着吧),另外不加""的话也会出问题,不知道为什么(之前一直是不加分号的)
sqlmap.py -u "http://xxx.com:2018/index.html?page=blog&title=Blog&id=2" --banner --dbs
得到数据库577799569e8fb20e384ffe902084751d.png查看mitian的表
sqlmap.py -u "http://xxx.com:2018/index.html?page=blog&title=Blog&id=2" -D mitian --tables
36c8dbd3539f682d7d821a0d8534149e.png发现flag4c268406b73e9784a2fbb271bef32a414.png 回去看user表b032a1936c89ce96f889009dc960ca54.png得到账号密码,但是这个密码应该是MD5之后的,解一下试试2a7e2995bbab114504062d12fb14d3df.png这样有账号密码了我们回头登录mail,登陆之后邮件不少,但好像都没用。。。

e4328b1e6e88221c2194d2726dbbbb81.png

然后ssh连上(2042端口是老师说的,好像是做的端口映射,我们扫不出来,有点迷)

b888f246f58e9c488f8a8224542cc77f.png

拿到flag5f5ecc3e24c986d6f6474567aeaf48233.png5.2019

868516fb66be11352949b3784c88a9ea.png

拿到这道题还是先扔到御剑里跑一下,毕竟源码没东西,抓包没东西,只能这样了,别给老子提服务器撑不撑得住,造就完了

477e6c804e28e12b141205b571a0641e.png

robots.txt暴露了,看一下

fc9858d75958fcadf2aff21f7dfc960a.png

暴露了/dev,看一下

ceb568a54eaa0f5a44f913d6d3da466a.png

这里需要密码,然后上传文件,我们先随便写个一句话,随便写个一句话传一下,看他怎么说,给的提示是非法文件d19300d3ef5f1517f29f6e7ef4ee953d.png那我们尝试传个图片马试试,看看是不是黑名单2f7122102ee5698199df091faa3700e2.png他提示密码错误,说明是黑名单,但是需要密码,所以我们有两个思路,一个是传.htaccess直接去解析一个图片马,另一个是查找黑名单中是否有未过滤完全的,但是不论哪种思路,都需要密码才能穿上,我们应该先找密码。我们看到还有一个忘记密码的选项,点开之后,告诉我们请先。。。6fda849b9f3908bf1ac569fe4066a254.png我们看一下源码,他提示说看文件名,那么就是127,应该是在忘记密码哪里抓包,加上XFF头,应该就行11a6a5c1c1f2ffac1de2c69e89ac9e0d.png试试呗。给了flag1和一段ook加密的东西4a4c5ab1d58c657d232c6beb36cf478a.png解出来就是密码:d1c8ff84e5164be42e046fe97c89861ce3cbf9360.png我们传个.htaccess(乱七八糟的图片木马和D盘的web里都有,但注意我那个里面只解析了jpg的)

377fc8de1c08d1277f9e0374f42b9409.png

我们发现这个上传成功了,所以接着穿一个图片马,因为我们知道他是限制了后缀名,所以试试。

661aa9825be8b8c0a7d06309f9967498.png

发现也曾是成功的,菜刀连他
http://xxx.com:2019/dev/upload/password.jpg
da9a25591f3345038d526be94415a5f2.png这里面应该也会有flag,应该有两三个,但有的需要权限,后续提权再补上我们再多提一句,上面说到的第二个思路就是看黑名单没过滤全,将检验pht后缀没被过滤,可以上传并解析执行。6.2020这道题是一个cms系统,我们上网查一下有代码执行的漏洞,但不知道版本,先没管

2e39c190ace88299fa3bed2ee9d5f258.png

扔到御剑里扫出来暴露了robots.txt

a741bdb5606c29d565d5049f8ada02c4.png

看一下

69281bd6ed8c9ad3c58ad6a01cfc8356.png

跟进 xyhai.php,进入后台8000227eee9804e4d87e0ef0facf8632.png从网上搜到默认账号密码是xycms/123456,登录进后台,可以得到flag1

8c802fb7b2c449113f1d193a3c6e44bc.png

做到这就很生气了,因为在系统设置的网站设置中有上传配置,我们可以看到这是允许添加上传文件类型的,所以可以穿上一句话,并且我之前也传上去了,但是现在说路径不存在,这绝对是被人改东西了09a17900d00efa3f8cd55cfaf3b0534e.png我查了一下这个路径是存在的,所以路径没有问题,可能是限制了上传路径,我打算换个路径传,但也被禁了,技术比我好,顺便找到了第二个flag,dfca1212c26bc3ad23d204c0b06168b8.png写一下后续思路,方便回头补上,(如果没记错的话)传上一句话之后,菜刀连上,传大马,反弹shell,然后提权(注意:以后能传上一句话之后一定要传大马,然后反弹shell,再提权,这是必然的后续步骤)提权后到root路径下有一个flag5,然后在另个地方有一个文件放着数据库信息,有账号密码和flag3,连上数据库之后还有一个flag4。(总之这道题很贴近渗透流程,后续一定要补上)7.2021

fa432d7e9d7bf43d3ee1abf4d9065067.png

查看源码和抓包都没有结果后,扔到御剑里扫,发现有robots.txt

bfad5aca5d4ea0f8010ef61e1a4049a2.png

打开之后有

8cfa041ebedd761adb9da27b8d947345.png

得到一个flag

71931703f2b9deb31d3be2f25304d8b5.png

base64解码一下b0e5337d0c01bc8aca1c29fe1d5d6343.png然后在admin_area中发现了

6096ddb2855e62992edcec742eea5bbd.png

查看源码,得到登录的账号密码和一串十六进制数

035452eed0968bab1947d0b30a1cc131.png

先解一下16进制数,直接拿到flag22556cd624b99430236d8f09bbaf5da00.png回到登录页面登录进去,得到一个上传点,这是一个任意文件上传,可以直接传马4f7c95725a964cff16ca5526abbce592.png但是传上之后没有给上传路径,但是robots.txt中给出了upload,所以查看一下,应该又被玩坏了,但这道题是唯一一个当时提权成功了的,没法复现了,好可惜。8.2022

8313e125375c8792f6499890dd0cf480.png

上来还是给的登录界面,这道题没有暴露robots.txt,源码也没看到信息,好像只能爆破了。。。这就很气,又要看脸了。然后我的字典有一次不负众望的没跑出来(应该就是要爆破的,最后账号密码是admin/admin888)登录后是这样,看到有flag1

d04c55aafb3f4fa3610d8f03fe9f0b95.png

查看源码得到flag1

836bdf6fa90bdb8ac0a0d90f5235b64b.png

然后找他的上传,传个一句话试试,然后被拦截说后缀名不对,而且是个白名单啊,那就直接图片马改包吧(多写一句,传图片马改包的方法只能绕过前端的检测,后端的不行,某整程度上还是.htaccess靠谱点,如果不是白名单的话,但如果把.htaccess禁了的话,还是很难办,要么找黑名单没过滤的,这个就看脸了,或者就找别的漏洞比如命令执行或者远程文件包含吧)总之这道题的图片马改包还是可以的,并且给出了上传路径,貌似这道题没被破坏,感觉自己在做抢救性挖掘,还给出了flag3

755513e7467d59064038bba5f0b922fb.png

先看一下这个一句话,发现没有权限看

5b9889b619a4bb61fc708d7dd798bb7c.png

但是文件应该是传上了,可以菜刀连一下试试2a0c587479308eecb2cc9368397bd6aa.png能连上,但是权限太低了,啥也干不了,whoami都不行,后续可以提权,但是考虑到登陆进去之后还有一个包含,我们先去看看这个文件包含在file3.php中有flag4

1c1f619da2b7b0ebcf0e008bfd01632f.png

那我们试一试文件包含,整挺好,直接拿到/etc/passwd

2fc9cf6e6bca4a7d50286f2f4aaca58e.png

我们回头找找flag4,注意我们的flag4是在file3.php中的,我们需要用php伪协议读取文件内容(对于文件包含看文件的问题,还是php伪协议最靠谱)payload:
?page=php://filter/convert.base64-encode/resource=phpfile3.php
a84e9f983182046d36615b60ea5e234f.pngbase64解码一下,得到flag4d2410fce42d0821b07076744d7414875.png然后我们在刚刚传上一句话的时候,提示有flag3,我们也用文件包含的方法拿出来,payload:
?page=php://filter/convert.base64-encode/resource=../upload.php
db41f1281262998e53354f820a732193.pngbase64解码出来,找到flag322d21f34c853617b7c1e5a9d005c00fb.png别急,这时候我偶然看到浏览器的cookie中有flag2,对于这个flag2我记得好几道题都是放在这个cookie里的,我不知道是不是没失效,但已经拿到三个flag了,好像这个flag2放在这里好像也没什么问题。。。

a21d4e2dd862ede94b83bed9549ad3aa.png

知道这个之后,我们重新回顾上传的一句话,我们知道,连接一句话的时候可以添加登录的cookie信息,我们尝试把登陆后的cookie写进去再连接。(但是填上cookie也没有用,大佬告诉我就是这么做的,不会了。。。)9.2023越朝后越难,但题目质量也越高,所以我就更做不出来

d7908a5399459c6a0a2c2103ae229348.png

你看这题的cookie也有flag2,所以就很迷。。。源码有个16进制数,转字符之后再接base64b74861bfe5512ff6284b33a4f20a43a2.png得到如下12a904238b1299038791fac2ce3d1625.png得到flag1

e3f7124269d3e0ec440f47e83278da5a.png

之后线索就很猥琐了,在标题处是/Challenges1f8b3c3acc55f56cf73aa59930df70cd.png所以跟进/Challenges,这个不是常用路径,所以御剑扫不出来

f415e6d30126cd8c4aac6f0eb14924a9.png

又是账号密码,实在找不到信息,做不出来了。。。ac1272afc8451027ab5b093d3f05d6e1.png▼往期精彩回顾▼tomcat PUT方法任意写入文件漏洞【系统分享】anhunsec靶场练习系统【二进制安全】某APT样本分析END

090fd4098d79e874d41dd801d5649d8d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值