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

最新文章

  1. 《UML大战需求分析》阅读随笔(二)
  2. Oracle数据库之四
  3. MySQL之经典语句
  4. rolling hash
  5. Java实现配置加载机制
  6. Java程序猿面试题集(181- 199)
  7. PDF解决方案(3)--PDF转SWF
  8. AspectCore动态代理中的拦截器详解(一)
  9. 洛谷 P2194 HXY烧情侣【Tarjan缩点】 分析+题解代码
  10. c# 获取TFS结构 文件
  11. 【面试】我是如何在面试别人Spring事务时“套路”对方的
  12. Django路由(url)
  13. js根据银行卡号进行判断属于哪个银行并返回银行卡类型
  14. ecshop 订单状态
  15. private,protected,public和default的区别
  16. 查看webservice服务下的所有方法和参数类型
  17. CORS跨域、Cookie传递SessionID实现单点登录后的权限认证的移动端兼容性测试报告
  18. 2018-2019 20165226 Exp5 MSF基础应用
  19. DotNetty 使用ByteToMessageDecoder 国家部标808协议封装
  20. echarts隐藏之后的显示问题

热门文章

  1. 入门大数据---MapReduce-API操作
  2. caffe的python接口学习(4)mnist实例手写数字识别
  3. CentOS 7安装Oracle 12c图文详解
  4. 错误记录-MySql.Data.MySqlClient.MySqlException (0x80004005): Timeout expired.
  5. 曹工说面试:当应用依赖jar包的A版本,中间件jar包依赖B版本,两个版本不兼容,这还怎么玩?
  6. HNOI 2014 米特运输(图论)
  7. CF833 A The Meaningless Game
  8. Sightseeing,题解
  9. Chive CTF 2020 - Tiki
  10. day48 navicat使用及pymysql的使用