从sql注入到getshell(内附sqlmap的os-shell遇到中文路径的解决办法)

君叹   ·   发表于 2021-12-14 10:29:31   ·   实战纪实

这是基本界面
试试看信息列表里面随便点一条看下网络请求

可以看到一个带有参数的请求,我们试着直接访问

直接访问的话能够看到直接的文章内容

尝试一下更改bti的值

试试直接用sqlmap跑

测试成功,存在sql注入

尝试参数 —os-shell
看看是否能拿到shell

成功getshell
但是我们执行命令默认都在’C:\Windows\system32’这个路径下

我们可以看到当我们执行e:
没有回显
再次执行chdir仍在c:\windows\system32下
有没有可能是e:没执行成功
我又执行了个d:
回显 “设备未就绪”
1可以说明我们的e:确实能执行成功
2也反映了这台服务器并没有d盘

然后使用windows的逻辑运算符
让两条命令相继执行

这样是可以成功执行的
然后我们大致可以判断
web路径应该是这个什么平台

尝试一下列出此目录下的文件
e:\**平台&dir

这里报了一大堆错误啊
后来经过了解是编码问题
sqlmap默认是utf-8
但是目标服务器是gbk编码格式
设置一下burp代理
用burp截包
然后再改一下
sqlmap的 —proxy参数用来设置代理


然后发现报错了

这里是设置代理的时候少了个http://
加上再来一次


成了,把包放行

然后编辑命令
e:\**平台&dir
截包
这里0x开头到%3B结尾中间的内容就是我们刚刚的命令的hex编码

解码后与我们刚刚输入的命令是一致的


再把这个内容以gbk格式编码

写个python脚本把%去掉
c = "%65%3a************bd%cc%a8%26%64%69%72"
print(c.replace("%", ""))


再把得到的字符串粘贴到刚刚的位置去
放包即可
这里要注意的是转换编码这个速度一定要快
不然的话sqlmap会因为长时间未得到响应自动挂掉
如果过10个赞,我就去整一个把utf-8编码换成gbk的脚本放评论区

最后出来的数据还是有问题
还是显示的c盘那个地方的文件


找到问题应该是命令用错方法了
这里的话可以 dir e:
这样列出e盘下的文件和目录


同理,如果我们想要写一个webshell同样也会遇到这样的问题
用这种方法改一下就好

测试完毕
收工

用户名金币积分时间理由
Track-JARVIS 1.00 0 2022-02-24 11:11:58
Track-JARVIS 1.00 0 2022-02-24 11:11:22
Track-劲夫 25.00 0 2021-12-17 14:02:04 活动奖励
Track-劲夫 50.00 0 2021-12-17 14:02:56 一个受益终生的帖子~~

打赏我,让我更有动力~

0 Reply   |  Until 2021-12-14 | 825 View
LoginCan Publish Content
返回顶部 投诉反馈

© 2016 - 2023 掌控者 All Rights Reserved.