mysql基本用法

如何打开MySQL命令行?

phpStudy启动服务--->其它选项菜单--->MySQL工具--->MySQL命令行

还有一种方式就是先cd到bin目录,然后输入mysql -u root -p

敲回车之后在输入密码,为什么不直接在-p后面输入是因为怕一些黑客看到。。。

一句话木马:必学!很重要!链接:https://baike.baidu.com/item/%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%9C%A8%E9%A9%AC/1845646?fr=aladdin

 中国菜刀请自行百度,与一句话木马结合使用,十分强力!!!

查库:

 

 

 

 

查表:

 

 

 

 

查列:

 

 

查字段:

 

 

 

MySQL不区分大小写,select=SELECT

limit 0,1;其中第一位是从第几个开始,比如0代表从第一个开始,而第二位的1代表的就是显示多少个数据。

--+     --    #     都是注释符,也就是说这个符号后面的句子不执行。

 

select system_user();显示系统用户

select user()显示用户

select database()显示当前数据库

select version()显示MySQL版本

select @@datadir显示MySQL安装路径

select @@version_compile_os显示操作系统版本

 

left()函数:left(database(),1)='s'      left(a,b)从左侧截取a的前b位,正确返回1,错误返回0

 

 regexp函数:select user() regexp 'r'       user()的结果是root,regexp为匹配root的正则表达式

 

 like函数:select user() like 'ro%'       匹配与regexp相似。

 

 substr(a,b,c)   select substr()XXXX        substr(a,b,c)从位置b开始,截取a字符串c位长度

 

 ascii()      将某个字符串转化为ascii值,可与substr结合使用

 

 chr(数字)   或者是ord('字母')   使用python中的两个函数可以判断当前的ascii值是多少

 

查看文件读写权限,新装的显示都是这样的

 

为方便后期学习文件的读和写,需要在MySQL\my.ini文件中加入一串代码

 查看是否获得读取权限。。。

 

 

load_file()读取本地文件

into outfile写文件

注意:\t在命令行代表特殊含义,会被转义,所以使用\\

 

 

 

 

if(condition,A,B)如果条件condition为true,则执行语句A,否则执行B。。。

 updatexml()报错注入

首先了解下updatexml()函数
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
 演示:通过updatexml()函数爆出security库

count(*)

对   行   数目进行计数。

select count(*) from dvwa.users;

 

substring('要截断的字符串',开始截取位置,截取长度)

substr('要截断的字符串',开始截取位置,截取长度)

select substring('administrators',1,5);

select substr('administrators',1,5);

 

mid('要截断的字符串',开始截取位置,截取长度)

mysql专有的字符串截取函数。

select mid('administrators',1,5);

 

left('要截断的字符串',截取长度)

从左往右截取。

select left('administrators',5);

 

right('要截断的字符串',截取长度)

从右往左截取。

select right('administrators',5);

 

rand()

会随机产生[0,1)之间的浮点数。

select rand();

 

rand(x)

每个x对应一个固定的值,可预测。

 

rand()*2

会随机产生[0,2)之间的浮点数。

select rand()*2;

 

floor()

只返回整数部分,小数部分舍弃。

select floor(5.55);

SQL语句解析顺序: 

通过id=1 and 1=1和id=1 or 1=1和id=1111 or 1=1的执行结果我们可以看出,当select * from users where这段代码执行时,or只要有一个正确,where后整体都正确,但不执行。。。

 

 

 使用order by语句,通过执行结果我们可以看出,执行where id=1后直接执行and 1=1,没有执行order by,and换成or也一样。。。

 

 

将order by写在and或or后,通过执行结果可以看出,语句执行时order by被执行,但返回为空,说明在解析时order by被忽略了,详情请参考:https://www.cnblogs.com/annsshadow/p/5037667.html

 二次注入:

参考资料:https://www.cnblogs.com/cute-puli/p/11145758.html

                  https://www.jianshu.com/p/3fe7904683ac

 

posted @ 2020-03-01 20:01  强霸卓奇霸  阅读(236)  评论(0)    收藏  举报
https://blog-static.cnblogs.com/files/xiaokang01/js.js 这是添加的文件的链接 color="240,230,140" 粒子的颜色设置 opacity="1" 粒子的透明度 count="75" 粒子的个数