dirsearch扫出/.git/目录

遂用航神写的Githacker脚本   https://github.com/wangyihang/githacker

出来的源码并不完整,使用git log --reflog查看下记录

选择第一条修改的记录的commit执行git reset --hard bfbdf218902476c5c6164beedd8d2fcf593ea23b

这是恢复后的源码

  1. <?php
  2. include "mysql.php";
  3. session_start();
  4. if($_SESSION['login'] != 'yes'){
  5. header("Location: ./login.php");
  6. die();
  7. }
  8. if(isset($_GET['do'])){
  9. switch ($_GET['do'])
  10. {
  11. case 'write':
  12. $category = addslashes($_POST['category']);
  13. $title = addslashes($_POST['title']);
  14. $content = addslashes($_POST['content']);
  15. $sql = "insert into board
  16. set category = '$category',
  17. title = '$title',
  18. content = '$content'";
  19. $result = mysql_query($sql);
  20. header("Location: ./index.php");
  21. break;
  22. case 'comment':
  23. $bo_id = addslashes($_POST['bo_id']);
  24. $sql = "select category from board where id='$bo_id'";
  25. $result = mysql_query($sql);
  26. $num = mysql_num_rows($result);
  27. if($num>0){
  28. $category = mysql_fetch_array($result)['category'];
  29. $content = addslashes($_POST['content']);
  30. $sql = "insert into comment
  31. set category = '$category',
  32. content = '$content',
  33. bo_id = '$bo_id'";
  34. $result = mysql_query($sql);
  35. }
  36. header("Location: ./comment.php?id=$bo_id");
  37. break;
  38. default:
  39. header("Location: ./index.php");
  40. }
  41. }
  42. else{
  43. header("Location: ./index.php");
  44. }
  45. ?>

回到题目的登录界面,根据提示对密码后三位进行爆破,最后得到密码:zhangwei666

进入留言板,审计源码可以发现存在二次注入。三个参数存入board表的时候进行了转义,但之后查询的时候没有转义,造成二次注入。

sql语句有多行所以使用/**/过滤

在category

构造payload

在留言区提交*/#闭合就能显示结果了

利用load_file()读linux文件

www用户对bash进行了操作,查看.bash_history

发现.DS_Store文件

文件显示不全利用hex()读文件

发现flag文件

查看该文件,解码后得flag

BUUCTF-Web Comment的更多相关文章

  1. BUUCTF WEB

    BUUCTF 几道WEB题WP 今天做了几道Web题,记录一下,Web萌新写的不好,望大佬们见谅○| ̄|_ [RoarCTF 2019]Easy Calc 知识点:PHP的字符串解析特性 参考了一下网 ...

  2. BuuCTF Web Writeup

    WarmUp index.php <html lang="en"> <head> <meta charset="UTF-8"> ...

  3. 记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)

    题目很简单,一个滑稽 打开源码,发现存在source.php文件 于是访问文件,发现出现一串php源码 提示存在hint.php,于是访问发现一句话 flag not here, and flag i ...

  4. buuctf—web—高明的黑客

    打开靶机,看到如下界面 于是打开www.tar.gz 下载后发现是一个放有大量php文件的文件夹 看了大佬的wp后明白了是fuzzing 附上大佬的脚本 import os import re imp ...

  5. buuctf—web—Easy Calc

    启动靶机,查看网页源码,发现关键字 $("#content").val() 是什么意思: 获取id为content的HTML标签元素的值,是JQuery,     ("# ...

  6. BUUCTF WEB-WP(3)

    BUUCTF WEB 几道web做题的记录 [ACTF2020 新生赛]Exec 知识点:exec命令执行 这题最早是在一个叫中学生CTF平台上看到的类似,比这题稍微要复杂一些,多了一些限制(看看大佬 ...

  7. Linux运维入门到高级全套常用要点

    Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...

  8. PHP表单验证内容是否为空

    内容为空效果图为: 填写内容效果图: 下面是验证程序的代码: <!doctype html> <html> <head> <meta http-equiv=& ...

  9. rsync unison+inotify双向实时同步

    rsync多线程同步 A:文件服务器 ip:10.10.1.10 B:备份服务器 ip:10.10.1.11 1.在B服务器上安装rsync软件 tar xzvf rsync-3.1.0.tar.gz ...

  10. samba服务器之无认证进入共享目录

    修改设备中的/log/samba/lib/smb.conf文件 security = share [web]                                               ...

随机推荐

  1. 怎么更改maven工程jdk版本(默为1.5,怎么更改jdk版本为1.8)

    使用maven 创建工程更改默认jdk版本(1.5)方法 step1: 找到自己项目的pom.xml文件,添加下图黄色区域代码(文末附上的有代码:可以直接复制) step2: 保存一下更改后的的pom ...

  2. keras训练实例-python实现

    用keras训练模型并实时显示loss/acc曲线,(重要的事情说三遍:实时!实时!实时!)实时导出loss/acc数值(导出的方法就是实时把loss/acc等写到一个文本文件中,其他模块如前端调用时 ...

  3. 看完这篇Redis缓存三大问题,保你面试能造火箭,工作能拧螺丝。

    前言 日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题. 一旦涉及大数据量的需求,如一些商品抢购的情景,或者主页访问量瞬间较 ...

  4. Prince and princess——需要优化的DP

    一个时间效率为o(nlogn)的算法求公共子序列的应用 Prince and princess 题目大意(已翻译 ) 在nxn的棋盘上,王子和公主玩游戏.棋盘上的正方形编号为1.2.3 ... n * ...

  5. 常见Python的Web开发框架

    在今天,Python里有很多开发框架用来帮助你轻松创建web应用.web开发框架存在的意义就在于可以快速便捷的构建应用,而不用去在意那些没必要的技术细节(协议.报文.数据结构). 到2020年为止,基 ...

  6. MySQL 事务 异常 事务隔离的级别

    MySQL 事务 异常 事务隔离的级别   事务 在你操作数据库的同时,有可能其他用户还会不断地对数据进行增删改查操作.为了避免并行进行时出现混乱,就产生了"事务".事务就是要保证 ...

  7. 无题 II 二分图最大匹配

    题目描述 这是一个简单的游戏,在一个n*n的矩阵中,找n个数使得这n个数都在不同的行和列里并且要求这n个数中的最大值和最小值的差值最小. Input 输入一个整数T表示T组数据. 对于每组数据第一行输 ...

  8. 小书MybatisPlus第2篇-条件构造器的应用及总结

    一.条件构造器Wrapper Mybatis Plus为我们提供了如下的一些条件构造器,我们可以利用它们实现查询条件.删除条件.更新条件的构造. 条件构造器用于给如下的Mapper方法传参,通常情况下 ...

  9. 使用LLDB和debugserver对ios程序进行调试

    在没有WIFI的情况下,使用USB连接IOS设备,使用辅助插件usbmuxd来辅助调试.我其实也想用wifi调试,奈何公司的wifi绑定了mac地址,而我又使用的是黑苹果虚拟机,使用桥接的方式修改网段 ...

  10. day26 作业(ATM第二版)

    目录 start.py conf.settings.py core.src.py db.db_handler.py interface.bank_interface.py interface.shop ...