南邮ctf web题记录(上)

1.签到题

题目链接

f12看源码就行了。

md5 collision

chrome_2020-03-10_10-56-15

题目贴出了源码,按照题意,a不等于QNKCDZO但是md5与QNKCDZO的md5相等时就可以获得flag。

如果两个字符经MD5加密后的值为 0exxxxx形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,还是零,都是相等的。

下列的字符串的MD5值都是0e开头的:

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

以get的方式传a,值取以上不为QNKCDZO的值即可。

chrome_2020-03-10_11-04-33

2.签到2

http://teamxlc.sinaapp.com/web1/02298884f0724c04293b4d8c0178615e/index.php

chrome_2020-03-10_11-05-38

在输入框里面输入zhimakaimen,我们会发现最后一位数没有办法输入进去。

右键检查一下会发现源码里面设定了maxlength为10.

chrome_2020-03-10_11-07-56

更改这个数值,让zhimakaimen能够全部输入在输入框之后点开门就出现flag了。

3.这题不是web

http://chinalover.sinaapp.com/web2/index.html

chrome_2020-03-10_11-10-40

打开题目是一个猫猫的动图。

用一句话木马的时候经常把一句话木马藏在图片的里面,我们把图片下载下来,用记事本打开,在最后一行就可以看到flag了。

4.层层递进

http://chinalover.sinaapp.com/web3/

f12查看源码,会看到一个网址。

点进去看看?

chrome_2020-03-10_14-06-32

跟刚才差不多的界面。继续查看源码。

chrome_2020-03-10_14-11-54

继续。

chrome_2020-03-10_14-12-51

chrome_2020-03-10_14-13-32

O和0是不一样的(汗)

chrome_2020-03-10_14-14-27

404.html终于不是先前的界面了。

chrome_2020-03-10_14-15-10

查看源码,发现奥秘。

chrome_2020-03-10_14-16-34

5.AAencode

http://homura.cc/CGfiles/aaencode.txt

做题做到一半无法访问了?

6.单身二十年

http://chinalover.sinaapp.com/web8/

这个题目名让我感到深深的恶意。

打开bp,抓包。

点击到这里找key。

chrome_2020-03-11_09-56-22 

抓到包了,send to repeater。

在response里面发现flag.

java_2020-03-11_09-58-57

7.php decode

这道题目没有链接。

题目给了一段源码。

  1 <?php
  2 function CLsI($ZzvSWE) {
  3 
  4     $ZzvSWE = gzinflate(base64_decode($ZzvSWE));
  5 
  6     for ($i = 0; $i < strlen($ZzvSWE); $i++) {
  7 
  8         $ZzvSWE[$i] = chr(ord($ZzvSWE[$i]) - 1);
  9 
 10     }
 11 
 12     return $ZzvSWE;
 13 
 14 }
 15 eval(CLsI("+7DnQGFmYVZ+eoGmlg0fd3puUoZ1fkppek1GdVZhQnJSSZq5aUImGNQBAA=="));
 16 ?>

把这段代码运行一下就行,为了显示出结果,把eval换成echo。

chrome_2020-03-11_16-09-52

8.文件包含

http://4.chinalover.sinaapp.com/web7/index.php

链接题目:bugku flag在index里

这道题与flag在index里是一个考点,然而我又忘记怎么做了……

来复习一下吧。

参考链接:php伪协议

LFI

我们不仅要知道这道题怎么做,还要知道后面的原理(/(ㄒoㄒ)/~~)

构造payload:http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

就可以获得以base64编码的index.php的源码。

找个网站解码就可以了。

chrome_2020-03-11_16-47-49

从源码中可以看到屏蔽了’../’  ’tp’  ’input’  ’data’。

9.单身一百年也没用

这道题和单身二十年是一样的做法。

单身二十年是重定向,这道题是302跳转。

java_2020-03-11_16-55-33

10.Download~!

http://way.nuptzj.cn/web6/

打不开了……

看了看大佬们的writeup,是通过更改url把download.php下下来(完全想不到QAQ),虽然做不了但是还是记录一下。

11.COOKIE

http://chinalover.sinaapp.com/web10/index.php

抓包,cookie上的Login=0,改成1send过去就行了。

java_2020-03-11_17-22-32

12.MYSQL

http://chinalover.sinaapp.com/web11/

chrome_2020-03-11_17-24-08

那就扫扫后台吧。

其实直接/robots.txt就可以了(_〆(´Д` ))

御剑后台扫描工具_2020-03-11_17-25-47

扫到了robots.txt,打开来看看。

chrome_2020-03-11_17-27-37

提示是sql.php,并且源码中显示会用get方法获得id。

打开sql.php,试一下id=1024.

chrome_2020-03-11_17-29-20

注意看源码,源码里面有一个intval函数,用来取整,在与1024比较的时候没有将其取证,而echo的时候的id是取整过的id,所以取1024.1就可以绕过比较输出其中的内容了。

13.GBK Injection

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1

原理:参考链接

在单引号前面加上%df绕过转义。

chrome_2020-03-11_18-17-30

查字段数。

chrome_2020-03-11_18-20-11

3的时候会爆错,字段数为2.

看哪一个能够回显,id=-1是为了能够爆错显示信息。

chrome_2020-03-11_18-21-41

查当前数据库。

chrome_2020-03-11_18-22-45

查表名。

chrome_2020-03-11_18-24-32

根据题目名猜测flag在gbksqli里面。

查列名。这里因为单引号被转义,要将gbksqli转换成16进制ASCII码。

转换工具

chrome_2020-03-11_18-38-59

查数据。

chrome_2020-03-11_18-41-05

提交上去发现失败了……(;´д`)ゞ

最后发现表名是ctf4……

14./x00

http://teamxlc.sinaapp.com/web4/f5a14f5e6e3453b78cd73899bad98d53/index.php

chrome_2020-03-11_18-48-59

strpos:查找 "php" 在字符串中第一次出现的位置

ereg函数遇到%00会截断或者为数组时返回值不为false。

chrome_2020-03-11_18-57-44

或者。

chrome_2020-03-11_18-58-14

15.bypass again

http://chinalover.sinaapp.com/web17/index.php

chrome_2020-03-12_10-08-03

一个简单的md5绕过。

a,b都是数组就行了。

chrome_2020-03-12_10-10-35

16.变量覆盖

http://chinalover.sinaapp.com/web18/

source at /source.php

点进去看源码。

chrome_2020-03-12_10-27-25

这里有一个extract函数,用post传值相同的pass和thepassword_123就可以了。

java_2020-03-12_10-32-42

17.PHP是世界上最好的语言

题目没了……

18.伪装者

http://chinalover.sinaapp.com/web4/xxx.php

chrome_2020-03-12_10-37-01

伪装ip,这里用X-Forwarded-For是不行的,要用Client-IP。

抓包,在头部加上Client-IP=127.0.0.1。

java_2020-03-12_10-41-17

19.Header

也没了/

20.上传绕过

http://teamxlc.sinaapp.com/web5/21232f297a57a5a743894a0e4a801fc3/index.html

00截断绕过。

原理:https://blog.csdn.net/weixin_44840696/article/details/90581104

随便找个图片上传,用bp抓包。

java_2020-03-12_11-18-55

在/uploads/后面加上1.php再加上一个空格。

转到16进制,在这一行找到1.php的16进制,找到20(空格的十六进制表示),然后改成00.

java_2020-03-12_11-21-10

会变成这样。

java_2020-03-12_11-22-26

send。

java_2020-03-12_11-22-47

获得flag。

拓展:其他文件上传绕过方法

原文地址:https://www.cnblogs.com/truthilia-12580/p/12513018.html