sql靶场心得

先尝试admin:admin
 
使用sqlmap时如果要扫描网站,那就用-u,如果要扫描文件txt,那就用-r
 
注意’单引号,”双引号,’)单引号+括号,”)双引号+括号 等常见闭合方式,还要加–+注释符
还有”‘,”‘)等闭合方式
使用and 1=1,order by 等判断闭合,还有什么”” “”的
在进行布尔盲注的时候注意某些图片的变化
如果布尔注入怎么都试不出闭合方式,那就可以用延时注入来尝试
还有记录本地IP时,可能在请求头会有注入点,例如后台返回了uer-agent的信息
0
user-agent是直接写入注入语句的(把原来的句子删掉)(要与原来语句格式保持一致)
 
HTTP中User-Agent注入
$insert=”INSERT INTO’security’.’uagents'(‘uagent’,’ip_address’,’username’) VALUES (‘$uagent’,’$IP’,$uname)”;
payload内容
updatexml(xml_document,xpath_string,new_value);
第一个参数:XML文档对象名称。//可以用数字代替
第二个参数:XPath字符串。
第三个参数:替换查找到的符合条件的数据。
‘ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or ‘1’=’1 //查询当前版本信息
‘ and updatexml(1,concat(0x7e,(select database()),0x7e),1) or ‘1’=’1 //查询当前数据库名。其他以此类推。
借鉴其他人笔记↑↑↑
 
 
 
referer也是一样,也要格式一样(但是好像也不一样)
0
 
HTTP Referer注入
’ or ‘1’=’1 //查询是否存在注入
’ or (length(database()))>8 or if(1=1,sleep(5),null) or ‘1’=’1 //通过一个一个查询信息得到我们想要的结果。过程繁杂。
 
cookie的时候,遇到cookie页面的时候不要在登录的时候抓包,进去以后刷新的时候再抓包

or ‘1’=’1语句一定要记住

0
 
 
文件上传漏洞的话
“%20 into outfile “X:\\xx\\xx\\xx\\xx\\shell.php”–+
 
还要注意字段加密
sqlmap里的tamper模块就是应对加密的模块
0
 
–current(感觉有用)
 
–batch(跳过询问)
 
–dump(打印数据)
 
写报错语句的时候一定要在其前面写上and或者or,要不然到时候错都不知道在哪里错
 
 
第24关
首次出现二次注入:将恶意数据存储在数据库,然后调用这条数据,对它进行一个注入
需要两个步骤才能完成攻击行为,1.插入恶意语句,2.二次查看(这时候因为服务器已经将恶意语句存储进数据库中,所以数据库会直接执行恶意语句并且回显出来)
24关的二次注入是通过admin’#来进行更改管理员密码,由于传输过去的时候php转义了’和#符号,但是数据库没有对‘和#进行转义,所以虽然看起来我们是对admin’#这个账号进行更改密码,但是在数据库里面的语句是=’admin’#’,所以我们实际上是在对admin进行修改密码的操作(越权)
 
先注册admin’#这个带有恶意语句的账号名,然后在被服务器存储进数据库以后直接对其进行越权操作,这就是二次注入攻击在这里的作用(1.注册带有恶意语句的账号,2.对其账号进行更改密码操作,通过数据库调用此恶意语句以后进行越权对管理员账号进行操作)
 
如果过滤or和and字符,可以尝试大小写,然后也可以尝试其他同义字符,例如||,&&等,还可以尝试oorr,anandd,这样进行绕过

发表评论