知识点:
UPDATEXML (XML_document, XPath_string, new_value):
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值。改变XML_document中符合XPath_string的值。
例如我们输入的语句为:select updatexml(1,concat(0x7e,(select username from security.users limit 0,1),0x7e),1);
其中的concat函数是将其连成一个字符串,因此不会符合XPath_string的格式,从而出现格式错误,爆出错误
第十七关(Less-17):
1.根据提示输入,返回结果是成功的更新密码
2.进行抓包,得到post的内容uname=admin&passwd=admin&submit=Submit。显示正常。
3.将密码随便更改。然后执行。显示结果正常。
4.将用户名随意更改。执行。显示失败
5.在本关中,我们要知道用户名,对密码处的值进行操作,才能进行下面的操作。
6.爆出数据库名称,使用updatexml函数。执行成功,返回一个错误即为我们得到的第一个数据库名称。
7.爆破表,以security为例。爆破出security库中的第一个表名称emalis
第十八关(Less-18):
1.根据前几关得出,Less-18也是Post。抓包得到Post的内容uname=admin&passwd=admin&submit=Submit,执行成功,显示信息如图所示
2.如果登陆错误,显示信息如图,显示登陆失败,但仍有ip,没有浏览器信息
3.经检验,在username和password处无法进行注入,字符会被转义
4.使用http头协议,先进行抓包。分析得,可以通过对IP地址和user agent信息进行注入
5.对Less-18中的的文件内容进行修改,显示出当前库和uagent的查询语句
6.更改后,重新执行。如图,可以对图中圈住的地方进行http头部注入
7.使用bp抓包进行http头注入,分析得出它可能不是select语句,可能是属于insert 或者 update,并分析出其闭合方式为(‘’,‘’,‘’)
8.使用 'or updatexml(1,concat(0x7e,(database())),1)or '1'='1,得到当前的数据库名称
9.其余库、表、列的操作均相同
第十九关(Less-19):
1.首先根据提示进行登录,输入admin,密码:admin,登陆成功,显示Referer信息
2.输入错误密码,登陆失败,没有回显信息
3.进行代码分析后得出,Less-19与Less-18类似,不同的是Less-19在Refere处进行注入,需要进行闭合操作,操作方法与Less-18的相同,参考Less-18
第二十关(Less-20):
1.进行登录,输入admin,密码admin,登陆成功,显示cookie信息,登陆失败,则没有cookie信息
2.经过分析可知,本关运用cookie注入。在登录之后,后台会将username放入cookie中,再次登录时,只要cookie没有过期,就会在cookie里面取值,进行查询
3.正确登录并进行抓包,并检测其闭合方式,发现是单引号闭合
4.使用union联合查询表名
第二十一关(Less-21):
1.进行登录,登陆成功
2.进行抓包,发现此关的cookie值是加密的
3. 查看源码之后,发现cookie采用的base64加密,并且闭合方式为('')
4.通过加密的方式,修改cookie,通过base64编码格式,讲') union select 1,2,3#进行加密为Jyl1bmlvbiBzZWxlY3QgMSwyLDMj。与Less-20不同的是此关进行了加密处理,其余均相同。
第二十二关(Less-22):
1.本关与Less-21不同的是闭合方式不同,cookie同样采用加密处理
2.通过修改cookie,发现本关闭合方式为""
3.其余均与Less-21操作相同。