BUUCTF-Web Comment
2024-10-09 11:55:25
dirsearch扫出/.git/目录
遂用航神写的Githacker脚本 https://github.com/wangyihang/githacker
出来的源码并不完整,使用git log --reflog查看下记录
选择第一条修改的记录的commit执行git reset --hard bfbdf218902476c5c6164beedd8d2fcf593ea23b
这是恢复后的源码
<?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 board
set 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 comment
set 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");
}
?>
回到题目的登录界面,根据提示对密码后三位进行爆破,最后得到密码:zhangwei666
进入留言板,审计源码可以发现存在二次注入。三个参数存入board表的时候进行了转义,但之后查询的时候没有转义,造成二次注入。
sql语句有多行所以使用/**/过滤
在category
构造payload
在留言区提交*/#闭合就能显示结果了
利用load_file()读linux文件
www用户对bash进行了操作,查看.bash_history
发现.DS_Store文件
文件显示不全利用hex()读文件
发现flag文件
查看该文件,解码后得flag
最新文章
- 《UML大战需求分析》阅读随笔(二)
- Oracle数据库之四
- MySQL之经典语句
- rolling hash
- Java实现配置加载机制
- Java程序猿面试题集(181- 199)
- PDF解决方案(3)--PDF转SWF
- AspectCore动态代理中的拦截器详解(一)
- 洛谷 P2194 HXY烧情侣【Tarjan缩点】 分析+题解代码
- c# 获取TFS结构 文件
- 【面试】我是如何在面试别人Spring事务时“套路”对方的
- Django路由(url)
- js根据银行卡号进行判断属于哪个银行并返回银行卡类型
- ecshop 订单状态
- private,protected,public和default的区别
- 查看webservice服务下的所有方法和参数类型
- CORS跨域、Cookie传递SessionID实现单点登录后的权限认证的移动端兼容性测试报告
- 2018-2019 20165226 Exp5 MSF基础应用
- DotNetty 使用ByteToMessageDecoder 国家部标808协议封装
- echarts隐藏之后的显示问题
热门文章
- 入门大数据---MapReduce-API操作
- caffe的python接口学习(4)mnist实例手写数字识别
- CentOS 7安装Oracle 12c图文详解
- 错误记录-MySql.Data.MySqlClient.MySqlException (0x80004005): Timeout expired.
- 曹工说面试:当应用依赖jar包的A版本,中间件jar包依赖B版本,两个版本不兼容,这还怎么玩?
- HNOI 2014 米特运输(图论)
- CF833 A The Meaningless Game
- Sightseeing,题解
- Chive CTF 2020 - Tiki
- day48 navicat使用及pymysql的使用