一些语法
1.列出列中唯一的值可以采用distinct 列名来进行选择
2.在进行登陆绕过的时候可以考虑万能密钥来绕过t’=’,这是因为一般的sql语句是
这样的:select from user where userame=’’ and password=’’ 当在用户栏中
输入t’=’时,sql语句就变成了select from user where username=’t’=’’ and
password=’t’=’’ username=’t’会返回false等号后面’’为空flase=null就会返回
正确,password也是同理。
3.ip伪造在burp中设置为x_forwarded_for :ip号
4.过滤掉了逗号后面,也就是说逗号是不能用,对于题目的提示,说会记录到db里面去,
所以后台程序可能用的是insert语句,没有使用select语句,所以寻常的注入不起作用
所以我们通过sleep进行测试 。sleep必须和and配合使用。
5.sql注入中and的优先级高于or
6.mysql_num_rows() 返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被
INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows()。
7.mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,
如果查询执行不正确则返回 FALSE。
8.mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有
返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。
9.rollup的作用,他会根据某一个列进行组合,然后会产生null值,就是让最终的表中有多个null值
10.select * from table limit 2,1;
含义是跳过2条取出1条数据,limit后面是从第2条开始读,读取1条信息,即读取第3条数据
11.offset 定位在第几行开始
12.注入中空格可以用%20,%0a,/*/,/!/,/!50000*/,+,()来替换
13.绕过关键字过滤的方法有:关键字中间加/*/隔断,/!关键字/,关键字中间加%0b隔断,
关键字重写(关关键字键字),大小写混合等等,尝试后/!*/可以绕过。
14.构造字符和数字的md5相等的例子v1=QNKCDZO,v2=240610708;(md5(‘QNKCDZO’) ==’0e830400451993494058024219903391’,
md5(‘240610708’) ==’0e462097431906509019562988736854’)