分类 CTF 下的文章 - 一个CTFer的小窝
首页
状态
友链
留言
追番
更多
视频
搜 索
1
Docker常用命令
56 阅读
2
Jet全家桶和Navicat激活(仅可用于学生学习使用)
43 阅读
3
CTF show web入门之文件上传
39 阅读
4
华为交换机&路由器命令
37 阅读
5
软考基本知识
33 阅读
CTF
SQL注入
文件漏洞
PHP特性
命令执行
云存储
云网络
Linux
kali
OpenWrt
登录
搜 索
标签搜索
MySQL
数据库
DNS
根服务器
根节点
软件
激活
HVV
云安全
网络安全
W1lsp0
累计撰写
24
篇文章
累计收到
2
条评论
首页
栏目
CTF
SQL注入
文件漏洞
PHP特性
命令执行
云存储
云网络
Linux
kali
OpenWrt
页面
状态
友链
留言
追番
视频
用户登录
登录
找到
9
篇与
CTF
相关的结果
2021-09-08
CTF_Show Web入门 信息收集 爆破
信息搜集vim缓存 vim在编辑文档的过程中如果异常退出,会产生缓存文件,第一次产生的缓存文件后缀为.swp,后面会产生swo等…所以直接访问url/index.php.swp下载访问备份文件即可。查看cookie域名缓存 https://zijian.aliyun.com/后缀admin,这个地方进入admin会被重定技术文档为document.pdf,默认后台地址:http://your-domain/system1103/login.php 默认用户名:admin 默认密码:admin1103后缀直接输入/editor,但是会自动去掉端口,而且没有https,选择上传文件,选择/var/www/html/nothinghere/fl000g.txt,然后原链接后缀加上/flag000g.txt进入找到网页下面的邮箱,进入url+/admin,查询邮箱QQ号发现地址,忘记密码填写地址找到答案网页探针,讲的什么是探针。进入后发现可以进入phpinfo,搜寻flag直接ping ctfer.com分析js,关注下面的代码,进入110.php找到flag var result=window.confirm("\u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b"); # var result=window.confirm("你赢了,去幺幺零点皮爱吃皮看看"); var result=window.confirm("GAMEOVER\n鏄惁浠庢柊寮€濮�");前端会将密码以AES加密发送到后端,只要前段发送到后端加密过的密码和$p一样就可以。抓包修改发送的password为注释部分的密码即可获得。或者去进行AES加密获得 error_reporting(0); $flag="fakeflag" $u = $_POST['username']; $p = $_POST['pazzword']; if(isset($u) && isset($p)){ if($u==='admin' && $p ==='a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04'){ echo $flag; } }进入url/db/db.mdb,可以获得一个文件,使用记事本打开,直接搜flag爆破抓包发现admin:pasword是被base64加密过,直接爆破选择base64加密域名也可以爆破的,试试爆破这个ctf.show的子域名,直接访问:http://flag.ctfer.com/index.phpphp代码,subset:获取字符intval:获取整数值get传参token,并进行md5加密判断 第2位 === 第15位 并且 第15位 === 第18位判断 (第2位整数值+第15位整数值+第18位整数值)/第2位整数值===第32位整数值,error_reporting(0); include('flag.php'); if(isset($_GET['token'])){ $token = md5($_GET['token']); if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){ if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){ echo $flag; } } }else{ highlight_file(__FILE__); } ?>跑脚本得到以下结果,测试得到3j正确,url/?token=3j得到结果[h]]1m 3j k0 kv ll mw[hi]import hashlib dic = '0123456789qwertyuiopasdfghjklzxcvbnm' for a in dic: for b in dic: t = str(a) + str(b) md5 = hashlib.md5(t.encode('utf-8')).hexdigest() if md5[1:2] == md5[14:15] and md5[14:15] == md5[17:18]: print(t)mt_srand(372619038)生成一个随机数如果给r的参数等于随机生成的随机数则,获得flag[em] 注:从 PHP 4.2.0 开始,随机数生成器自动播种,因此没有必要使用该函数 因此不需要播种,并且如果设置了 seed参数 生成的随机数就是伪随机数,意思就是每次生成的随机数 是一样的[/em]<?php mt_srand(372619038); echo (mt_rand()); ?>需要配置一下环境,php_mt_seed - PHP mt_rand() 随机数种子破解使用 随机数种子破解使用),配置完成后,传参使用r=0获得一个种子的负数,然后进行使用上面的程序编译运行得到该随机值的可能seed。这个时候会获得多个数字,观察网站的响应头发现是php7,使用获得的数字运行下面的代码获得token,burp添加cookie得到flag<?php mt_srand(4059711086); echo mt_rand()."<br/>"; echo mt_rand()+mt_rand()."<br/>"; ?>观察界面的script,发现需要在url/checkdb.php界面POST四个变量,使用Hackbar直接post[hi]a=&p=&d=&u=&pass=获得flag function check(){ $.ajax({ url:'checkdb.php', type: 'POST', dataType:'json', data:{ 'a':$('#a').val(), 'p':$('#p').val(), 'd':$('#d').val(), 'u':$('#u').val(), 'pass':$('#pass').val() }, success:function(data){ alert(data['msg']); }, error:function(data){ alert(data['msg']); } }); }PS:被这个题整麻了,进入界面发现了登录下面有录取名单和查询系统,下载名单进入查看到名字和损失的身份证号。进入查询系统发现需要名字和身份证号。直接爆破,成功后在rquest获得身份证号,在response获得学号。在登录界面输入身份证号和学号获得flag。在抓包的时候,使用火狐会抓不到包,还有在最后输入的时候提示错误,最后莫名其妙就成功了。 直接对路径进行爆破,去掉2.txt,观察response获得flag
2021年09月08日
7 阅读
1 评论
0 点赞
2021-07-28
ctfshow web入门 爆破
Author:CCc1QQ:1027832304Web23题目:还爆破?这么多代码,告辞!源码:<?php /* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-03 11:43:51 # @Last Modified by: h1xa # @Last Modified time: 2020-09-03 11:56:11 # @email: h1xa@ctfer.com # @link: https://ctfer.com */ error_reporting(0); include('flag.php'); if(isset($_GET['token'])){ $token = md5($_GET['token']); if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){ if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){ echo $flag; } } }else{ highlight_file(__FILE__); } ?>分析:subset:获取字符intval:获取整数值get传参token,并进行md5加密判断 第2位 === 第15位 并且 第15位 === 第18位判断 (第2位整数值+第15位整数值+第18位整数值)/第2位整数值===第32位整数值脚本:import hashlib dic = '0123456789qwertyuiopasdfghjklzxcvbnm' for a in dic: for b in dic: t = str(a) + str(b) md5 = hashlib.md5(t.encode('utf-8')).hexdigest() if md5[1:2] == md5[14:15] and md5[14:15] == md5[17:18]: print(t) 获得以下字符串:1m 3j k0 kv ll mw尝试后,满足条件的是3jpayload:?token=3jWeb24题目:爆个锤子源码:<?php /* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-03 13:26:39 # @Last Modified by: h1xa # @Last Modified time: 2020-09-03 13:53:31 # @email: h1xa@ctfer.com # @link: https://ctfer.com */ error_reporting(0); include("flag.php"); if(isset($_GET['r'])){ $r = $_GET['r']; mt_srand(372619038); if(intval($r)===intval(mt_rand())){ echo $flag; } }else{ highlight_file(__FILE__); echo system('cat /proc/version'); } ?> 分析:mt_srand(372619038)生成一个随机数如果给r的参数等于随机生成的随机数则,获得flag 注:从 PHP 4.2.0 开始,随机数生成器自动播种,因此没有必要使用该函数 因此不需要播种,并且如果设置了 seed参数 生成的随机数就是伪随机数,意思就是每次生成的随机数 是一样的因为有了伪随机数,所以知道随机数,然后传给r,就可以获得flag获得随机数1155388967payload:?r=1155388967Web25题目:爆个锤子,不爆了源码:<?php /* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-03 13:56:57 # @Last Modified by: h1xa # @Last Modified time: 2020-09-03 15:47:33 # @email: h1xa@ctfer.com # @link: https://ctfer.com */ error_reporting(0); include("flag.php"); if(isset($_GET['r'])){ $r = $_GET['r']; mt_srand(hexdec(substr(md5($flag), 0,8))); $rand = intval($r)-intval(mt_rand()); if((!$rand)){ if($_COOKIE['token']==(mt_rand()+mt_rand())){ echo $flag; } }else{ echo $rand; } }else{ highlight_file(__FILE__); echo system('cat /proc/version'); }分析:hexdec:将16进制转换成10进制$rand = intval($r)-intval(mt_rand());通过上面这句,可以通过传入r获得第一个随机数,然后使用php_mt_seed进行逆推,获得种子如果rand存在的,则输出rand,可以将r传入0,使之为负获得第一个种子802091803进行逆推通过网站的响应头发现php的版本为7.3.11则符合只剩下两个经测试是第二个通过代码:if($_COOKIE['token']==(mt_rand()+mt_rand()))可知需要将两个随机数相加获得cookie通过代码: if((!$rand)){ if($_COOKIE['token']==(mt_rand()+mt_rand())){ echo $flag; }可知rand不存在的时候才可以继续往下执行而802091803是我们r=0时输出的随机数使r=802091803,就可让rand=0让其不存在继续执行下面代码然后使用burp进行修改cooke即可获得flagWeb26没成功....Web27题目:CTFshow菜鸡学院招生啦!登录需要学号和密码下面有录取名单和学生学籍信息查询系统录取名单为:学生学籍信息查询系统为:学生学籍信息查询系统查询需要姓名和身份证号录取名单则有姓名和身份证号,但是身份证号中的出生年月是没有的这样可以进行爆破进行抓包,设置爆破点设置成dates yyyyMMdd进行爆破19901004则出现不一样,进行Unicode解码得到学号和密码用户名为学号:10043419密码为身份证号:451023199010043419登录获得flagWeb28没成功wp是爆破前两个目录.....
2021年07月28日
7 阅读
4 评论
0 点赞
2021-07-28
Mysql时间盲注延时方法
Author:CCc1QQ:1027832304sleep\b\e\n\c\h\m\a\r\k(重复执行)\b\e\n\c\h\m\a\r\k(A,B),重复执行A次B表达式,使得处理时间很长,来进行延时笛卡尔积笛卡尔积就是进行连接表(因为连接表是很费时间的操作),达到延时get_lock(加锁)需要两个session现在一个session中锁定一个变量然后在另一个session中执行函数,达到延时效果rlike regexp正则表达式rpad或repeat构造字符串rpad(str,len,padstr)用字符串padstr对str进行右边填充,达到len长度,然后返回strrepeat(str,times),复制str字符串times次以下代码同等于sleep(5)concat(rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a')) RLIKE '(a.)+(a.)+(a.)+(a.)+(a.)+(a.)+(a.*)+b'
2021年07月28日
28 阅读
0 评论
0 点赞
2021-07-27
ctfshow web入门 信息收集
Author:CCc1QQ:1027832304Web1查看源代码获得flagWeb2本题无法使用右键查看源代码在url前面加上:view-source: 即可获得flagWeb3题目提示抓包,则使用burp进行抓包获得flagWeb4题目提示robots进行访问,获得flagishere.txt访问flagishere.txt获得flagWeb5题目说php源码泄露则在url中添加index.phps,下载文件,获得flagWeb6提示解压,则进行访问www.zip获得压缩包,里面两个文件index.php中存在flag在fl000g.txt打开文件明显不对题目并提示在当前目录解压,则进行访问fl000g.txt获得flagWeb7题目提示版本控制很重要,则联想到.git泄露直接访问.git获得flagWeb8也是和前一题一样的题目考察的都是版本泄露的问题分为:.git .hg .svn此题为.svn泄露,访问获得flagWeb9题目说vim,然后死机了vim在非正常退出下,会生成一个xxx.xxx.swp的文件则访问index.php.swp获得flagWeb10题目说cookie,则cookie可能存在flagf12 Network 获得flagWeb11提示域名可以隐藏信息使用阿里:阿里域名查询进行查询,获得flagWeb12提示,公开的信息寻找后,唯一的有用信息为:访问robots.txt获得admin访问/admin/提示需要用户名密码,admin 372619038获得flagWeb13题目提示技术文档在页面寻找技术文档,无果...............在尾页,有一个document:文档的意思可以进行下载,下载的文件内存在后台地址和用户密码登录即可获得flagWeb14不会...先跳过Web15题目提示公开的邮箱进入网页寻找邮箱字眼最底下有一个qq邮箱在url中访问adminadmin 1156631961不正确,点击忘记密码问题是那个城市有了qq邮箱,搜索qq,地址为陕西西安输入西安,提交然后登录获得flagWeb16题目提示探针访问tz.php使用的是雅黑探针访问phpinfo,查找flag获得flagWeb17不会...先跳过Web18题目说是玩到101分给flag进来是一个游戏查看代码查看js文件发现有一个判断语句,else是死后弹出是否重新开始则正确的话提示上面一句上面被加密了进行unicode解密提示是去110.php看看访问获得flagWeb19提示密钥是一个登录窗口查看代码可以看到用户名密码输入后,发现用户名密码错误抓包后发现,传过来的密码会被加密则将password改为源代码里的即可获得flagWeb20mdb文件泄露直接访问db/db.mdb获得数据库源码,查找flag即可获得flag
2021年07月27日
9 阅读
11 评论
0 点赞
1
2