WEB1

查看网页源代码

WEB2

方法1、ctrl+shift+i调出开发者工具
方法2、在url头部添加 view-source
方法3、点击更多工具,开发者工具查看元素获得页面注释
方法4、通过开发者工具查看网络response结果获得flag

WEB3

开发者工具network抓包查看http协议头里面有个flag协议头,提交即可

WEB4

hint:直接访问url/robots.txt获得flag
robots.txt存在的意义,声明这些是不让你爬的,但是你爬了的话我不追究你则可,追究你那你就违反机器人爬虫协议了,国内也有这种比较流氓的情况,就是无视你的任何这种协议,就算你不让我爬我也爬了,你也不能怎么地!

WEB5

PHP源码泄露,直接在url后加/index.php无反应,加/index.phps弹出一个文件
phps源码泄露有时候能帮上忙

为什么访问index.phps会下载源码呢?
和http服务器解析的后缀有关系,在apache的情况下如果配置在早一些版本如果配置https解析的话,它会自动显示这个PHP文件的源码,这是一种文件泄露的方法

WEB6

说明源码包(说明是个压缩包)在当前目录,直接在url后输入常见源码包名字,最终试到www.zip
解压源码到当前目录,测试正常,收工

在www.zip发现,但是flag提交是错误的:为什么?

  1. 如果学过开发就知道了,比如有一个团队开发了一套系统,里面有一个敏感文件,姑且假设为flag.txt,内容假设为aaa,开发团队把这个源码包进行开放下载,别人是可以任意使用的,假如我下载了这套系统的话,我这个文件我是可以任意修改的,我从源码包只能拿到默认源码路径有这个文件,但是内容是由使用人来进行修改的,并不是说源码包里面是aaa,那么其他的人就不能动这个aaa,我们可以把这个aaa想成一个config.php,里面有个关键信息叫网站名称title:演示系统,那我拿到这个源码包了,我肯定不能用演示系统作为我网站的标题,我改为ctfshow
  2. 为什么源码包里面有这个文件,是因为服务器上有这个文件,但是内容不一定就是源码包里面的内容,因为这套系统是别人可以自定义的内容的。

回到题目,我们看到它有fl000g.txt这个文件,所以这个是开发状态放出来的。
图片.png
我们访问/fl000g.txt这个地址:
图片.png

WEB7

hint: 版本控制很重要,但不要部署到生产环境更重要。
我们访问一下/.git/目录就可以拿到flag
为什么会出现这种情况?
因为点开头的文件夹在Linux下属于隐藏文件夹,别人可能经常在终端里面操作的话可能没看到这个隐藏文件夹,错误的将它部署到了这个网站的根目录上,造成了一些开发的信息泄露,甚至版本的那个源码泄露,这都是可能出现的情况。
这边我们了解到它是一个版本控制系统,它是可以面向多人进行一个协作开发的用途,这个很正常,比如是一个系统或者是一个页面,前端后端数据库同时几个人都在维护,那么每个人都要提交一份代码到仓库里面去,这时候就要用一个版本控制系统来控制,不然就可能会出现代码覆盖,因为你本地操作了好久,调制好了你提交上去,把别人提交的就覆盖了,通过这个工具,它可以比对你每个人提交的哪里不一样,确保不会冲突,再有一个就是版本控制,这个也是开发中会出现的问题。

版本控制系统介绍https://www.cnblogs.com/mingerlcm/p/11401250.html
主流的版本控制器有如下这些:

Git
SVN(Subversion) - 集中式的额版本控制系统
CVS(Concurrent Versions System)
VSS(Micorosoft Visual SourceSafe)
TFS(Team Foundation Server)
Visual Studio Online
版本控制产品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision Control
System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear
Vault),现在影响力大且使用广泛的是 Git 与 SVN

WEB8

hint:版本控制很重要,但不要部署到生产环境更重要。(和web7一样,也是版本控制)
除了web7的git,常见的还有svn版本控制软件,和Git没有什么本质区别
在url后面输入/.svn/获得flag

WEB9

hint:发现网页有个错别字?赶紧在生产环境vim改下,不好,死机了
这是一个vim泄露,我们可以访问一下它的首页index.php,再访问一下它的交换文件/index.php.swp发现flag
为什么会出现这种情况呢?
在生产环境下,用vim非正常退出的时候,它会产生一个交换文件!里面是我们没有编辑完成的内容,这个交换文件在http服务器里面是作为一个非解析内容,变为二进制下载。这是一种思路!
图片.png

WEB10

hint:cookie 只是一块饼干,不能存放任何隐私数据
肯定是要看cookie了,F12打开控制器,在存储里面的cookie中找到flag(要url解码)

WEB11

hint:域名其实也可以隐藏信息,比如ctfshow.com 就隐藏了一条信息
提示说域名可以隐藏信息,推荐dbcha.com,可以查到域名的所有解析记录
图片.png
域名解析—什么是A记录、别名记录(CNAME)、MX记录、TXT记录、NS记录

WEB12

hint:有时候网站上的公开信息,就是管理员常用密码
访问/robot.txt发现
User-agent: *
Disallow: /admin/
再访问/admin发现出现弹框,要输入用户名密码,默认用户名,密码用电话号码试一下,成功!
这个看起来弱智,但是在现实渗透中还是挺常见的,特别是对于edu网站那种站群,比如某某大学有12个学院,每个学院都有一个单独的网站,可能每个学院网站都有一个单独的后台,他们可能就会设置一个好记的密码,比如他们办公室电话等,这也是有实际案例的,是一个渗透思路!

WEB13

hint:技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码
肯定就是要拿到密码进入后台的题目
图片.png
可以点击下载,查看内容
图片.png默认后台地址: http://your-domain/system1103/login.php
默认用户名: admin
默认密码: admin1103
发现网站访问不了,your-domain表示你的网域,这个其实就是代表你的这个靶场地址,
那么这边为什么没有写你靶场的地址呢?
因为这个技术文档,包括开发这一套系统它不是给一个人用的,它是卖出去给好多人用的,他们面向的域名是不一样的,它这里面肯定不知道卖给谁了,比如卖给张三,域名是zhangshan123.com
your-domain 它是来代表你部署以后的地址
访问:发现flag
图片.png

WEB14

hint:1、有时候源码里面就能不经意间泄露重要(editor)的信息,默认配置害死人;
2、小0day:某编辑器最新版默认配置下,如果目录不存在,则会遍历服务器根目录。
图片.png
查看网页源代码,发现有editor这个目录
图片.png
可以看到这是一个编辑器,点击?
图片.png
看到是KindEditor:

KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。
  它应该是百度的,现在还在继续维护,这是我们经常在特别是那些CMS,特别是政府机关特别喜欢用这种,比如有个新闻链接,上面是领导讲话,下面是一段简报,那么领导讲话的这个图片很可能就是来自编辑器的这个路径,我们通过这个图片的路径,可以顺藤摸瓜找到编辑器的路径,然后再从编辑器进行突破!<br />      以前编辑器用的比较多,近两年编辑器用的比较少了,因为HTML5它支持的内容越来越丰富,可以在以后的挖洞,或者是渗透测试过程中注意这一点!

下面我们从编辑器这里突破:(插入文件——文件空间,文件空间默认情况下是有一个默认配置的,但是这个默认配置直接用的话服务器上不一定存在这个目录,那么如果浏览一个不存在的目录的话,这边就会显示出根目录下的所有内容)
图片.png
我们看一下浏览器目录:/var/www/html/nothinghere
图片.png
这就已经拿到这个目录了,下面访问一下这个目录:
图片.png
/editor/attached/file/var/www/html/nothinghere/fl000g.txt
访问上面这个目录,是错误的
为什么目录会错呢?
/editor/attached/file/var/www/html/nothinghere/fl000g.txt这个路径是它的绝对路径(前面是编辑器的路径,后面是一个服务器的决定路径)
我们不能把url+绝对路径这样访问肯定是不存在的内容,
刚才那个图片是upload下的,我们可以直接访问/nothinghere/fl000g.txt,拿到flag
图片.png
以后渗透看到kindedit可以看看它的默认配置是否不存在会造成一个目录遍历的漏洞

WEB15

hint:公开的信息比如邮箱,可能造成信息泄露,产生严重后果
在url后加/admin进入后台,忘记密码:
图片.png
刚刚浏览又发现email:发现是qq邮箱,查找QQ号发现是西安
图片.png
您的密码已重置为admin7789 用户名admin,得到flag:
ctfshow{93b9dd66-c5df-47fd-ac2c-00b9aba7c5ed}

WEB16

hint:对于测试用的探针,使用完毕后要及时删除,可能会造成信息泄露
进入界面,还挺好看
图片.png
探针莫非是PHP探针,访问默认探针名字tz.php(√)或者是info.php
图片.png
图片.png

WEB17(貌似已删除)

hint:透过重重缓存,查找到ctfer.com的真实IP,提交 flag{IP地址}
先访问一下ctfer.com,要知道它的ip地址,最简单的方式是ping一下
图片.png
两次ping的结果都不一样,应该是存在dns缓存
有时候加www和不加www效果是不一样的,这里考察的应该是cdn绕过
flag{111.231.70.44}
这道题应该是一年前的了,现在都访问不了这个网站,跳过!

最近发现又上了一道web17,上面这道题已经删了(2021-11-30)

WEB17(新增)

图片.png

通过目录扫描发现backup.sql,其实我是直接用hint,我用kali的dirsearch扫描网站都访问不了了

图片.png
查看SQL的备份文件,发现flag!

WEB18

hint:不要着急,休息,休息一会儿,玩101分给你flag
它是一个游戏,鼠标点动就可以控制小鸟,难度有点高
查看网页源代码:
图片.png
图片.png
这里最好的办法就是去console,输入alert(“\u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b”)

图片.png
去110.php看看,得到flag
ctfshow{f05202de-68bd-44ed-910a-df14638e068a}

WEB19

hint:密钥什么的,就不要放在前端了
查看网页源代码发现:
图片.png
($u===’admin’ && $p ===’””‘)
这应该是一串md5加密(x)32位
完蛋,猜测base和md5都没解出来,看源代码知道其实是AES
方法1、
查看WP发现我们可以直接绕过前端js提交哈希
hackbar中直接POST方式提交username和pazzword
图片.png
方法2、通过密文反推密文,因为我们已经拿到了密钥和偏移量,可以AES解密
图片.png
模式CBC模式,填充是0填充,密码是key等于的那个值,偏移量是iv对应的那个值,输出结果我们选hex,编码utf8
图片.png拿到密码重新登录,同样也可以获得flag

源码中,这就是一个在线的简单的js用的AES加密,我们都知道加密和解密的一些相关信息的话,可以通过密文来逆向还原出密文,甚至我们可以自己写一个js的解密函数来进行解密。
尝试写一下:

function decrypt(data,key,iv) { //key,iv:16位的字符串
  var key1  = CryptoJS.enc.Latin1.parse(key);
  var iv1   = CryptoJS.enc.Latin1.parse(iv);
  return CryptoJS.AES.decrypt(data, key1,{
    iv : iv1,
    mode : CryptoJS.mode.CBC,
    padding : CryptoJS.pad.ZeroPadding
  }).toString();
 decrypt("a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04","0000000372619038","ilove36dverymuch")

WEB20

hint:mdb文件是早期asp+access构架的数据库文件,文件泄露相当于数据库被脱裤了。
喜欢挖洞或者玩渗透的话可能知道它一般目录是db目录,它是数据库作为一个文件存储,尝试在URL后加/db/db.mdb(data.mdb一个个试)
这样的话就把数据库下载下来了,甚至可以达到脱裤,前一段时间还有防数据库下载的方式,它是把数据库名字命名为带一个井号的,这时候我们下载的话它后面这个是收不到的就达到防治数据库下载的目的,这种方式也比较蠢,因为我们可以通过%23绕过

有一个专门的工具“Access数据库查看器(EasyAccess)”,
图片.png
思维导图图片.png考点也可以概括为:
图片.png