免费的网站服务器,wordpress分享可见,小程序开发教程,网页设计与制作教程第二版机械工业出版社答案web1
直接右键打开#xff0c;在源代码里 web2
ctrlu查看源码 web3
打开bp抓包发送直接就得到了 web4 用dirsearch扫描发现txt文件
访问 接着访问得到flag web5
用dirbuster扫描看看有没有phps源码泄露#xff0c;发现存在 访问下载文件打开就是flag web6
用dirsearch扫…web1
直接右键打开在源代码里 web2
ctrlu查看源码 web3
打开bp抓包发送直接就得到了 web4 用dirsearch扫描发现txt文件
访问 接着访问得到flag web5
用dirbuster扫描看看有没有phps源码泄露发现存在 访问下载文件打开就是flag web6
用dirsearch扫描发现zip文件 下载 打开查看得到flag web7
用dirsearch扫描发现git泄露 访问 web8
直接dirsearch扫描发现svn泄露 访问 web9
根据题目提示可以知道是vim缓存漏洞 临时文件是在vim编辑文本时就会创建的文件如果程序正常退出临时文件自动删除如果意外退出就会保留当vim异常退出后因为未处理缓存文件导致可以通过缓存文件恢复原始文件内容。 以 index.php 为例 第一次产生的缓存文件名为 .index.php.swp 第二次意外退出后文件名为.index.php.swo 第三次产生的缓存文件则为 .index.php.swn 注意index前有 . 访问index.php.swp下载文件 打开得到flag web10
打开bp抓包请求直接得到flag web12
用dirsearch扫描发现robots.txt文件 查看发现admin路径 访问发现登入框 用户名为admin密码在页面下方372619038 登入得到flag web13
在页面下方发现个链接document 点开发现是技术文档有登入信息 将https改为http在域名后加上system1103/login.php成功进入登入界面 输入用户名密码成功登入 web14
用dirsearch扫描发现有个editor目录 访问发现一个编辑器界面 点击插入文件插入图片发现有个文件空间
进入/etc/passwd发现没东西进入/var/www/html发现有个nothinghere目录进入查看发现flag文件 访问/nothinghere/fl000g.txt得到flag web15
用dirsearch扫描发现有个admin路径 访问得到一个后台登入系统 先尝试用户名admin密码123456发现登入失败
点忘记密码发现有个密保问题 滑倒页面最下面有个qq邮箱 查询到号主是陕西西安的 输入西安得到密码 输入密码得到flag web16
根据题目提示直接访问/tz.php 点击php信息处的phpinfo
搜索得到flag web17
用dirsearch扫描发现有个sql文件 下载 查看发现flag web18
点开源代码发现有个js文件 点开发现胜利条件 搜索后发现是unicode编码
解码 根据谐音110.php
访问得到flag web19
查看源代码发现php代码 根据代码post传参得到flag web20
mdb文件是早期aspaccess构架的数据库文件
所以直接访问/db/db.mdb 用010打开得到flag web21 先随便输入用bp抓包 发现一串base64编码
解码发现是输入的用户名和密码 单独加密123456为MTIzNDU2
将题目的字典加入
并用base64加密 开始爆破得到flag web23 根据代码发现需要满足token的长度条件
#第一种import hashlibdic 0123456789qazwsxedcrfvtgbyhnujmikolp
for a in dic:for b in dic:t str(a)str(b)md5 hashlib.md5(t.encode(utf-8)).hexdigest()if md5[1] ! md5[14] or md5[14]! md5[17]:continueif(ord(md5[1]))48 and ord(md5[1])57 and (ord(md5[31]))48 and ord(md5[31])57:if((int(md5[1])int(md5[14])int(md5[17]))/int(md5[1])int(md5[31])):print(t)#第二种
import hashlibfor i in range(1,10000):md5 hashlib.md5(str(i).encode(utf-8)).hexdigest()if md5[1] ! md5[14] or md5[14]! md5[17]:continueif(ord(md5[1]))48 and ord(md5[1])57 and (ord(md5[31]))48 and ord(md5[31])57:if((int(md5[1])int(md5[14])int(md5[17]))/int(md5[1])int(md5[31])):print(i) 输入token3j或token422或token1202 web24 mt_srand()播种 Mersenne Twister 随机数生成器。 用法 mt_srand(seed); intval()获取变量的整数值 根据代码编写脚本
?php
mt_srand(372619038);
echo intval(mt_rand());
? 运行得到r get传参?r1155388967得到flag web25 先尝试r0和r1
发现返回值逐渐增加1 根据$rand intval($r)-intval(mt_rand());可知mt_rand()的值为1593817657
用php_mt_seed工具反推随机数得到种子 用wappalyzer查看一下php版本为7.3.11 选择合适版本的种子放入脚本求token
?php
mt_srand(2856563738);
$rand mt_rand();
$rand1 mt_rand();
$rand2 mt_rand();
echo $rand,\n,$rand1,\n,$rand2,\n,$rand1$rand2,\n\n; 这边rand1和rand2是第二次和第三次生成的mt_rand()的值由于试过了两个第一次mt_rand的值相加发现不行。 最终输入?r1593817657cookie值等于token2616771822有时候直接2616771822就行
感觉环境有问题没出flag就不放展示 web26
先随便输入发现没反应刷新弹窗unfinded
再尝试提示给的发现弹窗数据库连接失败说明就是要爆这个数据库需要爆破用户名和密码 尝试改不同地方最后发现只有密码是不对的只有单独改密码有弹窗
故爆破密码密码为775821爆破的时候可以尝试多个字典 web27
进去发现可以下载个名单 有个查询平台 进行身份证的爆破由于身份证中间的部分刚好是生日年月日所以直接用日期爆破 生日为19900201
爆破出信息再在登入平台登入即可得到一串unicode编码
\u606d\u559c\u60a8\uff0c\u60a8\u5df2\u88ab\u6211\u6821\u5f55\u53d6\uff0c\u4f60\u7684\u5b66\u53f7\u4e3a02015237 \u521d\u59cb\u5bc6\u7801\u4e3a\u8eab\u4efd\u8bc1\u53f7\u7801
解码 输入后得到flag
感觉环境问题抓包抓不到名字和身份证所以直接看了别人的wp但是思路是没错的 web28 这边看见路径有个0/1/2.txt感觉应该是要爆破这个
先尝试一下改变1.txt发现返回到2.txt且会产生很长的路径 说明要爆破的应该就是这个由于爆2.txt会比较麻烦所以先爆破前面两个如果不行就再爆破2最后再选择爆破txt爆破要由简入杂
用cluster bomb模式爆破0和1先试0到100
发现调到1000都没有将2.txt去掉试试/先保留得到flag web29
方法一
根据代码直接传参?csystem(ls);查看当前页面下的目录发现flag.php 由于flag被禁用所以用?csystem(cat f*);发现没有回显cat可能也被禁用了所以用 ?csystem(tac f*);成功得到flag 方法二?cecho tac f*;
方法三?ceval($_GET[a]);asystem(tac f*);
方法四?cinclude$_GET[a]?aphp://filter/readconvert.base64-encode/resourceflag.php
方法五?csystem(cp fl*g.php a.txt); 再访问a.txt即可
方法六?ctac f* | tee 1.txt; 再访问1.txt即可 web30
多了个system和php禁用web29的选一种合适的方法用 web31 web32 web33 web34 web35 web36 web37 ?php system(cat flag.php);?
查看源代码 web38 查看源代码 web39 查看源代码 web40
法一 ?ceval(array_pop(next(get_defined_vars())));
POST传参asystem(tac fl*); get_defined_vars() 返回一个包含所有已定义变量的多维数组。这些变量包括环境变量、服务器变量和用户定义的变量例如GET、POST、FILE等等。 next()将内部指针指向数组中的下一个元素并输出。 array_pop() 删除数组中的最后一个元素并返回其值。 法二 ?cshow_source(next(array_reverse(scandir(pos(localeconv()))))); localeconv()返回包含本地化数字和货币格式信息的关联数组。这里主要是返回值为数组且第一项为. pos()输出数组第一个元素不改变指针 current() 返回数组中的当前元素单元,默认取第一个值可以代替pos() scandir()返回指定目录中的文件和目录的数组。这里因为参数为.所以遍历当前目录 array_reverse()数组逆置 next():将数组指针指向下一个这里其实可以省略倒置和改变数组指针直接利用[2]取出数组也可以 show_source()查看源码 getcwd() 返回当前工作目录。可以代替pos(localeconv())。 web41