ahuCTFwp

2018-06-10  本文已影响0人  Ro0t

我们学校的CTF平台终于搭起来了,膜一波包子大佬~~

目前题目还不是很多,大部分是web,写个write up,希望对大家有所帮助

1.XSS-50

这题是XSS,可以通过各种花式操作得到flag,不过....有个最简单的方法: 右键查看元素,点击网络,查看cookie,emmmmmm出来了...这题就是这么神奇

2. XSS-100

其实吧,这题和上面一题差不多,查看cookie,出来了,不过这不是常规解法,可以看下源代码,然后根据那段php构造payload就行了

3. SQLi-50

这一题不会写,难受,先放这

更新:这一题,历经磨难,终于做出来了,请恕我有空再写,可以参考博客:http://blog.sina.com.cn/s/blog_5c92dd1f0102vjfg.html

4.SQLi-100

这一题用万能密码就行

username= 1’=’0

password= 1’=’0

或者

username:admin’=’

password:admin’=’

其实这题和实验吧有一题是一样的,p神写的很详细了,copy过来(侵删)

假设sql语句如下

select * from user where username='用户名' and password='密码'

当提交username=pcat'='&password=pcat'='

语句会变成如下:

select * from user where username='pcat'='' and password='pcat'=''

这时候还不够清晰,我提取前一段判断出来(后面的同样道理)

username='pcat'=''

这是有2个等号,然后计算顺序从左到右,

先计算username='pcat' 一般数据库里不可能有我这个小名(若有,你就换一个字符串),所以这里返回值为0(相当于false)

然后0='' 这个结果呢?看到这里估计你也懂了,就是返回1(相当于true)

所以这样的注入相当于

select * from user where 1 and 1

也等于 select * from user

(这题只有筛选出来的结果有3个以上才会显示flag,没有就一直说“对不起,没有此用户!!”)

好了,继续唠叨几句,上面那个比较是弱类型的比较,

以下情况都会为true

1='1'

1='1.0'

1='1后接字母(再后面有数字也可以)'

0='除了非0数字开头的字符串'

(总体上只要前面达成0的话,要使语句为true很简单,所以这题的万能密码只要按照我上面的法子去写一大把)

5.WEB-150

这一题嘛,上来先常规操作,看看源代码,发现没什么luan用,那就继续常规操作,看看消息头啥的,这时候发现有点不太对

有个Don!t-Decrypt,这个可不是常规消息头里面会出现的,而且后面那段明显是base64,那拿去揭秘喽,结果是20170521,然后拿去提交,显示错误。什么鬼!?再回头看看,这个Don!t-Decrypt的意思好像是不要解密,那就直接提交试试,返回一段有趣的东西

URL?就是个网址呗,那把_改成.进去看看

进去就显示flag,舒服

6.WEB-200

这题看起来也很眼熟,和实验吧有道题很像啊,我这么菜,当然是借(chao)鉴(xi)下dalao们的wp发到这来啦

点开链接之后,任意输入什么,都会弹框出来

你邮箱收到的重置密码链接为 ./step2.php?email=youmail@mail.com&check=???????

于是我们访问以下看一看http://old-ctf.ahusec.cn/web/findpass/step2.php?email=youmail@mail.com&check=???????

出现了step2的界面,但是马上又回到了原来的界面。可以抓包来看一下

email:

token:

在包中发现了submit.php,查看一下看看

但是不能访问,不是admin

但是我们可以知道这是vim,会有临时文件,应该没有禁用

一、vim备份文件

默认情况下使用Vim编程,在修改文件后系统会自动生成一个带~的备份文件,某些情况下可以对其下载进行查看;

    eg:index.php普遍意义上的首页,输入域名不一定会显示。   它的备份文件则为index.php~

二、vim临时文件

vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件,如果原文件名是submit,则它的临时文件

 .submit.swp。如果文件正常退出,则此文件自动删除。

所以我们查看临时文件

访问http://old-ctf.ahusec.cn/web/findpass/.submit.php.swp

里面有很多乱码,但还是有两段可读的代码

CREATE TABLE IF NOT EXISTS `user` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `username` varchar(255) NOT NULL,

  `email` varchar(255) NOT NULL,

  `token` int(255) NOT NULL DEFAULT '0',

  PRIMARY KEY (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

if(!empty($token)&&!empty($emailAddress)){

if(strlen($token)!=10) die('fail');

if($token!='0') die('fail');

$sql = "SELECT count(*) as num from `user` where token='$token' AND email='$emailAddress'";

$r = mysql_query($sql) or die('db error');

$r = mysql_fetch_assoc($r);

$r = $r['num'];

if($r>0){

echo $flag;

}else{

echo "澶辫触浜嗗憖";

}

}

从代码里可以知道,

token初始化为0,但if语句中要让他长度为10,可以置为0000000000

在网页的源代码里面我们可以从刚才的源代码中知道admin的邮箱

所以

http://old-ctf.ahusec.cn/web/findpass/submit.php?emailAddress=admin@ahusec.com&token=0000000000

7.'!'操作

这道题是密码学,下载下来是张二维码不过扫不出来,根据题目'!'的提示,反色之后就能扫了,扫出的结果是rot13啥啥的,那就是rot13加密呗,拿去解密一下,get,恕我懒得截图了

8.RSA

不会RSA加密,没学过现代密码学,听大佬说这题就是纯套公式,去自学一下公式,然后编程解决就行了,不过我这么懒,自学密码学是不可能的,这辈子不可能去自学密码学的,Web又不会做,只能靠sqlmap扫扫人家数据库,才能混混比赛这样子

9.复杂计算

这题就是编程题,先找规律,25以后的后五位都是0,那就算1到24的阶乘之后咯,写段代码算就行了,不会写的百度上一大堆。这题告诉我们,CTF里面也可能出现纯编程题,包子学长说的好,学习信息安全,编程的基础能力也很重要。虽然我个人认为,不以攻防为目的的敲代码都是耍流氓,一点都不酷。哈哈哈,个人拙见。

10.隐写-header

这题杂项是考隐写术,下载下来是个压缩包,解压出个misc格式的文件,misc这种格式肯定是不存在的,那它到底是什么文件呢,根据题目的提示,header,那就先转换成txt看看头是啥,然后就发现

看到个NG,那不就是PNG格式呗,作为图片打开,get flag!

11.隐写 - 种~

下载压缩包,解压解压再解压,最后是个jpg文件,拿stegsolve查看也没啥问题,改成txt也没看出隐藏了什么东西,然后就注意到了这个文件的名字,exif,我们去百度一下

信息???懒得去下专门的软件去查看了,看看文件属性里面的详细信息那一栏

优秀!

12.抓黑客

这一题很多人把它想复杂了,其实就是把黑客的ip填进去就行

先用wireshark打开数据包

第一次碰见这么短的数据包,舒服得一批

发现黑客就是进行了一个ping操作,过滤一下

发起ping的不就是黑客嘛,提交下ip地址,搞定

这一题还是很简单的,不过对数据包进行分析最好去系统学一下wireshark的使用,还是很有用的

题目不多,还是有两题不会写,RSA那题就算了,还有题sql注入的不会写,巨TM难受,再研究一下,写出来再更新。

第一次写WP,有不对的地方请大家指正,谢谢~

上一篇 下一篇

猜你喜欢

热点阅读