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()报错注入
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值

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