攻防世界web

article/2025/7/8 4:48:09

攻防世界web

前言

准备ctf比赛,这里把攻防世界分值低于5分的基本刷了一遍(分值再高刷不动了…)

练习

  1. view_source
    1
    没难度知识禁用了右键点击,ctrl+u查看源码拿到flag

  2. get_post

    这题没什么好说的,按着提示来就能拿flag
    2
    但我发现下面的hackbar不能用后用burp来进行post传参不返回flag…迷了我很久…

    结果我下了左边那个hackbar后重来一遍,结果就返回flag了,很迷,我burp肯定没用错啊…

  3. robots

    这道题也没什么好说的啊,考一个robots协议的理解(就是在玩爬虫时我们从来没有理会的一个协议…),这里查看robots协议,看到flag的php访问拿到flag
    3

  4. backup

    这道题还是有点意思,考查一个备份文件,因为前面刚看了源码泄露方面的东西,结果这里一来就直接想到了vim的文件备份结果试~,没有…这时候一看人家也没提示说vim,正常的备份一般是加,.bak(比较常见的方法,当然手动备份也可以自己来取名,但程序员我感觉还是会偏向于统一)然后访问就可以下载到备份文件,查看文件拿到flag
    4
    参考:备份文件:被低估的Web威胁

  5. cookie

    这道题也没什么说的,访问网页检查元素查看cookie,看到cookie.php,然后直接访问

    看到提示说查看response,响应头就藏着flag

    5

  6. disabled button

    这道题也没什么意思,有个按钮,查看源码可以发现是个input输入框,那直接post发送数据过去就得到flag了
    6

  7. simple js

    从题目就可以看出是一道javascript题

    访问页面,查看源码,可以看到js代码
    7
    分析得到下面的16进制的字符就是flag内容…(js确实有待学习加强,这里看了好久…)

  8. xff referer

    这道题也是比较初级的

    我是用两个插件解决的

    第一个它要求ip是123.123.123.123,我用的是X-Forwarded-For Header,

    第二个要求是来自 www.google.com 这个用hackbar添加的Referer

    当然直接抓包添加

    X-Forwarded-For: 123.123.123.123
    Referer: www.google.com

    这两个参数也行
    8

  9. weak auth

    这道题是个弱密码题,随便尝试登录,会告诉你用admin来登录

    然后查看源码会提示你需要一个字典,这就很容易想到暴力破解了吧

    这里用burp来尝试暴力破解
    9
    可以看到密码是123456的时候返回长度与别的都不一样,尝试用admin,123456来登录,登录成功获得flag

  10. webshell

    这道题考查菜刀的使用,用过的话就没什么难度

    题目描述中提示了一句话木马是index.php,访问网页看到一句话是<?php @eval($_POST[‘shell’]);?> ,得到’密码‘是shell,菜刀连接,文件管理就可以看到flag了
    10

  11. command execution

    刷过dvwa应该都知道这个漏洞,这也和dvwa的low级别没什么差别

    这里先127.0.0.1 & find / -name “flag.*” 来查找flag文件的位置(找不到的话可以试下找flag文件)

    然后看下图可以发现找到了
    11

    然后cat 文件得到flag

  12. simple php

    代码审计,这个代码还是比较简单易懂的
    12
    这里看代码就能明白,这里考的是php的==和===

    eg : $a = ‘123’; $b = 123;

    ​ $a === $b为假; $a == $b为真;

  13. ics-06

    这道题拿到的时候也没有什么好的思路,主页面点击没什么反应,查看代码后发现点击报表中心会跳转到index.php。跳转后可以看到Get传了一个id值,我这里以为是sql注入,结果没注出来。后面发现,这里是要暴力破解,id等于2333的时候出结果2333
    13

  14. Training-Get_Resourced

    这道题直接在描述里提示了看注释就是看页面源码,进入页面也有一行比较淡的字提示看源码,打开源码就能直接得到flag,没什么意思…
    14

  15. Training-WWW-Robots

    还是考查robots协议啊,访问robots.txt那里不让访问就去访问那里,就得到flag
    15

  16. NaNNaNNaNNaN-Batman

    这道题对我还是挺难的,因为不怎么会(不会)js…

    题目是给了个附件,以为是代码审计,也确实是代码审计,不过里面是乱码,但不全是乱码,能看出<script>,<eval>这些标签,很显然是个html文件,大概也能看出,前面是个函数,然后eval去执行,这里是把eval改为alert弹出非乱码形式的源码
    16
    分析其实可以直接运行里面的代码拿到flag,而不用去构造前面的匹配
    17
    然后可以看到直接出flag了

  17. NewsCenter

    这道题进去的时候也是比较懵,但看了下源码也就search那里可以操作,这种搜索框很容易想到sql注入,输入1查询正常,输入1’查询崩溃。OK存在注入,然后按照注入步骤来,整体很简单,dvwa low级别的难度吧手工很好注出来,sqlmap也能很好注出来
    18

  18. lottery

    这道题有点难了…(菜鸡的无助)

    这道题很显然是让我们去输入7个数字然后与答案匹配获得金币,然后购买flag

    抓包,发现cookie有提示说看cookie.php,但并不能访问

    然后我想能不能改个PHPSESSID来改换账户购买,但md5试了下破解不了,而且我们也不知道有别的账号
    19
    陷入僵局…

    然后我看了下别人的提示说看下robots.txt

    OK看到里面的提示就很熟悉了,最近刚好看了源码泄露的一些资料,还正好想试下GitHack这个工具…
    20
    使用githack工具
    21
    我们成功下回了源码,通过burp前面的代理我们可以看历史,发现我们buy的时候会访问api.php

    这时候就是代码审计了
    22
    可以看到buy的代码片段,这里又考查的是==这个知识点

    抓包可以看到是惊悚格式数据,然后$number也没有检查数据类型
    23
    OK,像上面那样改包就能成功赢的金币,然后就能购买flag了

  19. upload

    这道题我也很无语,很简单的文件上传漏洞用burp抓包或者禁js都能上传成功,上传的phpinfo也能访问成功,但我一句话就是连不上…我看别人的博客都是一句话能连上,很无语,最后上传了一个大马直接访问猜拿到flag…现在还是没懂为什么一句话没连上…
    24

  20. mfw

    这道题还是挺绕的

    首先是查看源码,看到注释里面有?page=flag
    25
    结果并没有返回

    然后再翻看网页,看到提示说他用到了git想到源码泄露,githack用起来
    26
    很开心看到下载到了flag.php,结果打开是空的,真的只是模板

    里面有用的就是index.php了,这时候就变成代码审计了
    27
    这里有个assert函数,这个一句话中也有用这个函数的

    如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。跟eval()类似, 不过eval( a s s e r t i o n ) 只 是 执 行 符 合 p h p 编 码 规 范 的 assertion)只是执行符合php编码规范的 assertion)phpcode_str。

    所以我们要利用这一点来执行我们的命令

    这里我感觉和注入是差不多的,因为没有过滤,所以我们可以注入些我们想要执行的东西

    assert(“strpos(’$file’, ‘…’) === false”) or die(“Detected hacking attempt!”);

    有两句assert,我们拿上一句来进行注入,首先我们随便构造一个文件名来闭合strpos,x’),然后

    我们有or来拼接我们要执行的语句,因为前面随便构造的文件所以会为false,我们后面的命会执行,or system("cat templates/flag.php "); //并注释掉后面的

    page=x’) or system(“cat templates/flag.php”);//

    这里自己php水平太菜所以看得别然人的,我总感觉上面assert没有闭合呢…但问题是上面的语句能正常运行,我想的反而不太对…php不愧是世界上最好的语言好难懂

    assert("strpos(’$filex’) or system(“cat templates/flag.php”);// 怎么看都不像闭合了呢

    然后查看源码就能看到flag了
    28
    这题考查的就相对绕了一些不像前面的题只考一个知识点那样了。

  21. FlatScience

    这个有点难了对于我这样的菜鸡来说

    首先登陆网站后发现有很多pdf就没什么收获了

    这时候查看robots.txt(主要看有没有提示什么后台登陆吧,现实中在robots里添加后台登陆也是比较常见的)或者用网站路径扫描器来扫描也是没问题的
    29
    这时候登login.php可以看到是个登陆界面,admin.php也是一个登陆界面

    看源码可以看到login.php中有提示
    30
    按照提示我们加?debug去访问,然后发现有源码,进入代码审计
    31
    可以看到有数据库查询语句,很明显存在注入(因为没有过滤),但这里的难点在于用的是sqlite这个数据库,虽说sql注入原理都一样,但实现细节还是不一样的…

    注入手法一样,先order by看字段数,这里注释符号用 –

    3的时候报错所以有两个字段
    32
    源码分析可以看到setcookie,这还是一个比较简单的sql注入,有返回值

    usr=’ union select name,sql from sqlite_master–
    33
    可以看到有user表,我们关心的name,password和hint(因为代码审计可以看到密码存储sha1的方式,所以肯定还需要提示来破解)

    ’ union select group_concat(name),group_concat(name) from Users –
    34
    ’ union select group_concat(password),group_concat(password) from Users –
    35
    ’ union select group_concat(hint),group_concat(hint) from Users –
    36
    这里我是看到最后的hansi用户它的提示是password is password然后尝试登陆,不行登不上…

    其次有用的提示就是admin了,他最喜欢的paper中最喜欢的词…这个就很像啊,因为前面给了那么多的pdf…

    我看了下后面的思路,主要是先爬取下来所有的pdf,写py脚本将pdf转为文本文件(主要用到pdfminer模块),然后再每篇文章一个词一个词的提取出来进行sha1计算(按照代码中的加盐),和我们sql注入出来的sha值比较一样的就停止得到密码

    然后再admin.php界面登录得到flag

    这里贴一下别人的py代码吧

    from cStringIO import StringIO
    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
    from pdfminer.converter import TextConverter
    from pdfminer.layout import LAParams
    from pdfminer.pdfpage import PDFPage
    import sys
    import string
    import os
    import hashlibdef get_pdf():return [i for i in os.listdir("./") if i.endswith("pdf")]def convert_pdf_2_text(path):rsrcmgr = PDFResourceManager()retstr = StringIO()device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())interpreter = PDFPageInterpreter(rsrcmgr, device)with open(path, 'rb') as fp:for page in PDFPage.get_pages(fp, set()):interpreter.process_page(page)text = retstr.getvalue()device.close()retstr.close()return textdef find_password():pdf_path = get_pdf()for i in pdf_path:print "Searching word in " + ipdf_text = convert_pdf_2_text(i).split(" ")for word in pdf_text:sha1_password = hashlib.sha1(word+"Salz!").hexdigest()if sha1_password == '3fab54a50e770d830c0416df817567662a9dc85c':print "Find the password :" + wordexit()if __name__ == "__main__":find_password()
    
  22. upload

    使用了我所知的一切方法进行上传,burp,文件截断…但完全不行,后台对文件进行校验,也没文件包含漏洞,卡主,毫无头绪…

    后面看writeup说这是一道注入题…

    这是一道insert注入题,insert注入听过,但没练习过…但原理我觉得就是插入数据的时候有些值插入成database()这种,后面显示的时候就会显示出数据库名。这里我们上传文件后会显示下图的信息
    37
    后面会重定向到初始页面显示上传过的文件名

    这里有了查询操作所以存在了二次注入的可能

    这里的注入也特别麻烦,有很多过滤规则…

    参考

    2015年rctf web150 (Update set 二次注入)

    RCTF2015+XCTF复现之一次上传的图片的文件名造成注入

    但注入出来的结果我提交为什么不对了…(好吧不要按它说的格式来,直接交才正确…)

  23. php2

    页面就没什么信息,先查看robots.txt没有,再查看常用的几个界面,admin.php,login.php,index.php都没有…

    路径扫描吧,扫出来会发现有index.phps(我是没扫出来,看了别人的字典添加后扫出来…)

    访问,可以看到有部分代码片段,查看源码,能看到详细代码,变为代码审计
    38
    这里就是要我们构造一个合适的id就能得到flag,可以看到需要的id进行urldecode后要等于admin,这就是二次编码,因为服务器接受到数据后会进行一次url解码,然后代码又解一次

    二次编码,可以自行百度下,我看别人都是用御剑来做的,这里admin比较短查表也方便吧


http://chatgpt.dhexx.cn/article/ykjCKpy5.shtml

相关文章

攻防世界 key

这道题又是差一点&#xff0c;原谅我想吐槽一下这道题有点瑕疵&#xff0c;没看出来最后得到的是flag&#xff0c;也可能是我自己的原因吧。 32位程序&#xff0c;进入主函数&#xff1a; 通过动态调试与静态结合分析&#xff0c;发现46、47行引用了两个字符串&#xff0c;第5…

Cookie 攻防世界

1.第一步还是看题&#xff1a; 由题目信息我们可以知道&#xff0c;这次题目和Cookie有关 2. 进入题目进行分析&#xff1a; 题目问我们知道什么是Cookie&#xff0c;Cookie:&#xff08;比如说你进入一个网站&#xff0c;输入你的密码和用户名&#xff0c;客户端就会把你的信…

攻防世界 happyctf

1.下载附件&#xff0c;exeinfo查壳&#xff0c;无壳 2.32位IDA分析&#xff0c;进入主函数内 int __cdecl main(int argc, const char **argv, const char **envp) {int result; // eaxint v4; // [esp5Ch] [ebp-70h]char *v5; // [esp60h] [ebp-6Ch]char v6[27]; // [esp6Ch…

攻防世界 lucknum

1.下载附件&#xff0c;exeinfo查壳&#xff0c;无壳 2.64位反汇编 3.打开main函数&#xff0c;F5反汇编 即可看到flag flag{c0ngrtulti0n_f0r_luck_numb3r}

攻防世界 supersqli

本道题考查的是sql注入中的堆叠注入 该题只有一个查询框&#xff0c;我们尝试使用联合注入&#xff0c;但是发现select等被过滤了 所以我们尝试使用堆叠注入&#xff0c;堆叠注入就是使用分号隔开要执行的多条sql语句&#xff0c;且可执行任意的sql语句&#xff0c;而union联合…

攻防世界Encode

Encode 题目描述&#xff1a;套娃&#xff1f; 题目环境&#xff1a;https://download.csdn.net/download/m0_59188912/87094879 打开timu.txt文件&#xff0c;猜测是rot13加密。 Rot13在线解码网址&#xff1a;https://www.jisuan.mobi/puzzm6z1B1HH6yXW.html 解密得到&#x…

攻防世界 fakezip

题目说是fakezip伪加密 这题跟之前的伪加密不一样&#xff0c;用以前的方法做不出来 尝试用010editor (用winhex的话难找&#xff09;直接打开 发现四部分的ushort frFlags都为0100将其改为0000&#xff08;没加密的文件均为0000&#xff09; 即 最后保存打开图片得到flag Fl…

halo 攻防世界

我自己的思路 附件打开是一个txt文件 看到这个就很明显要用base64解密 BASE64编码/解码 - 站长工具 - 极速数据 得到 igq4;441R;1ikR51ibOOp 然后就卡住了 想着Igq4怎么才能和flag沾边 后来将解密出来的字符搜索一下 发现有个类似的题 那个题前面多了个eobd Eobd经过与…

攻防世界 easyupload

本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行 点开链接 我们直接上传一句话木马 发现上传不了 说明可能被过滤了 所以我们需要绕过 绕过的点为检查后缀中是否有htaccess或ph 思路&#xff1a; 通过上传.user.ini以及正常jpg文件来进行getshell .user.in…

攻防世界——zorropub

1.查壳&#xff0c;无壳&#xff0c;64位。 2.IDA反编译。 逻辑:从最后的输出可知flag为v12&#xff0c;而v12是由v9与dword_6020C0的异或得来的。 v9是用srand和rand随机生成的伪随机数&#xff0c;并且这组伪随机数还要经过MD5加密5eba99aff105c9ff6a1a913e343fec67相同才可…

攻防世界 cookie

cookie:指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。 鼠标右键check(检查)网页,点击application(应用程序) 可以看到左边有一个Cookie 点击后出现 "look here" 看到一个 "cookie.php"文件 访问后出现下面…

攻防世界Running

Running 题目描述&#xff1a;无 题目环境&#xff1a;https://download.csdn.net/download/m0_59188912/87016663 一个可执行文件&#xff0c;执行后显示error&#xff0c;尝试binwalk文件分离。 命令&#xff1a;binwalk -e run.exe浏览分离出来的文件。 末尾发现一个run.ex…

攻防世界unseping

感觉新手题里面最难的一题 ----------------------------------------------------------------正文 原题&#xff1a;攻防世界 这个题涉及的只是挺多的&#xff0c;不过主要就是正则表达式&#xff0c;php的反序列化 下面是代码分析环节&#xff1a; 因为涉及了php的序列化…

攻防世界Hong

Hong 题目描述&#xff1a;无 题目环境&#xff1a;https://download.csdn.net/download/m0_59188912/86864063 双击打开MP3文件&#xff0c;报错。 放到kali里面看看文件类型。 命令&#xff1a;file 文件名并不是mp3文件&#xff0c;用binwalk分离试试。 命令&#xff1a;b…

攻防世界inget

进入页面得到 请输入ID&#xff0c;并尝试绕过 思路&#xff1a;通过id进行sql注入 对url进行修改添加/?id1 or 11-- abc 原本当传入id的时候例如id1就是id1 现在传入id1 or 11-- -就变成了id1 or 11-- -,id1或者11返回都是true&#xff0c;-- abc表示注释后面代码。由此…

攻防世界fileclude

自学的困难&#xff0c;一个题10个没见过的知识点&#xff0c;唉&#xff0c;太难了... ----------------------------------------------------------------------------------下面是正文。 原题地址&#xff1a;攻防世界 从题目我们就能看出来这是一个文件包含漏洞的题&…

攻防世界

攻防世界 新手题 misc 前6道 不得不说&#xff0c;这道题真的是入门级别了。答案就在题目中&#xff0c;复制粘贴就好 flag{th1s_!s_a_d4m0_4la9} 把文件拖入kali中&#xff0c;在终端输入file 1 打开文件&#xff1b;输入strings 1|grep flag查找;看到隐藏文件 将文件挂…

攻防世界MISCall

攻防世界MISCall 1、题目 网址&#xff1a;攻防世界 2、原理及工具 原理&#xff1a;git信息泄露 git官网资料&#xff1a;https://www.git-scm.com/book/zh/v2 工具&#xff1a;kali、python 3、解题过程 下载下来的文件名字太长&#xff0c;先改个名字 rootkali:~/De…

攻防世界(新手篇)

作为刚刚进入reserve的小白&#xff0c;这几天在攻防世界的一些解题 no_strings_attached 一看没有exe&#xff0c;估计是linux的文件了&#xff0c;扔进C32Asm里 果然elf文件 先用扔进ida分析&#xff0c;发现主要函数authenticate&#xff0c;找到他的地址 OK&#xff0c…

攻防世界:command_execution

首先掌握命令执行漏洞&#xff08;Command Execution&#xff09;的知识。 命令执行漏洞即使用者可以直接在Web应用中执行系统命令&#xff0c;从而获取敏感信息或者拿下shell权限。其造成的原因是Web服务器对用户输入命令安全检测不足&#xff08;比如没加waf&#xff09;&am…