Your Web app, those hackers & you

Video in TIB AV-Portal: Your Web app, those hackers & you

Formal Metadata

Your Web app, those hackers & you
Alternative Title
Your Web app, those hackers and you
Title of Series
Part Number
Number of Parts
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
Modern Web application frameworks offer a vast amount of ways to introduce security vulnerabilities. In this talk we'll have an overview of common and not so common patterns of vulnerabilities. The main focus will be Ruby on Rails applications, but also generic patterns which apply to other languages and frameworks will be elaborated. Instead of just showing off with 1337 bugs and exploits, mitigation strategies will also be provided.

Related Material

Context awareness Presentation of a group File format Parameter (computer programming) Student's t-test Mereology Information technology consulting Formal language Web 2.0 String (computer science) Software framework Information security Computing platform Vulnerability (computing) World Wide Web Consortium Mobile app Email File format Projective plane Bit Cartesian coordinate system Twitter Repeating decimal String (computer science) Pattern language Information security Hacker (term) Computer-assisted translation
Mobile app Software developer Code Software developer Projective plane Code Cartesian coordinate system Perspective (visual) Code Product (business) Product (business) Writing Web application Goodness of fit Data management Hacker (term) Right angle Hacker (term) Information security Category of being Information security Traffic reporting God World Wide Web Consortium
Randomization Context awareness Weight Multiplication sign 1 (number) Database Parameter (computer programming) Special unitary group Set (mathematics) Cuboid Category of being Information security Physical system Email NP-hard Link (knot theory) Instance (computer science) Type theory Process (computing) Auditory masking output Summierbarkeit Whiteboard Hacker (term) Information security Physical system Point (geometry) Service (economics) Link (knot theory) Divisor Token ring Real number Password Computer Number Wave packet Latent heat Well-formed formula Hacker (term) String (computer science) output Proxy server Form (programming) World Wide Web Consortium Mobile app Cellular automaton Basis <Mathematik> Cartesian coordinate system Spring (hydrology) Password Family
Complex (psychology) Server (computing) Software developer Multiplication sign Source code Mereology Computer programming Number Web 2.0 Goodness of fit String (computer science) Negative number Arrow of time Software framework God World Wide Web Consortium Mobile app NP-hard Software developer Sound effect Database Arithmetic mean Numeral (linguistics) Software framework Hacker (term)
Point (geometry) Authentication Mobile app NP-hard Identifiability Multiplication sign Execution unit Operator (mathematics) Cartesian coordinate system Mereology Number Type theory Casting (performing arts) Personal digital assistant String (computer science) Operator (mathematics) Hessian matrix Authorization Hacker (term) World Wide Web Consortium
Point (geometry) Complex (psychology) State of matter System administrator Parameter (computer programming) Mereology Special unitary group Number Mechanism design Aeroelasticity Internet forum String (computer science) Gamma function Summierbarkeit Quicksort World Wide Web Consortium Domain name Mobile app Metropolitan area network Execution unit Email Arm Matching (graph theory) Java applet Bit Spring (hydrology) Password Website Hacker (term)
Point (geometry) Building Perfect group Token ring Password 3 (number) Mereology Shift operator Pointer (computer programming) Energy level Diagram Information security World Wide Web Consortium Scripting language Mobile app Software bug Building Moment (mathematics) Database Bit Instance (computer science) Directory service Parity (mathematics) Cartesian coordinate system Limit (category theory) Category of being Web application Arithmetic mean Auditory masking Universe (mathematics) Chain Video game Hacker (term)
Code Parameter (computer programming) Open set Disk read-and-write head Information technology consulting Mathematics Radio-frequency identification Computer configuration Local ring Information security Vulnerability (computing) Area Bit Unit testing Instance (computer science) Complete metric space Root Uniform resource name Order (biology) Software testing Hacker (term) Freeware Curve fitting Row (database) Web page Point (geometry) Trail Game controller Computer file Continuous integration Login Emulation Causality Root Term (mathematics) Hacker (term) Gastropod shell Gamma function Summierbarkeit Traffic reporting Metazeichen World Wide Web Consortium Mobile app Execution unit Graph (mathematics) Key (cryptography) Cellular automaton Projective plane Expert system Frame problem Inclusion map CAN bus Causality Query language Personal digital assistant Spectrum (functional analysis)
Web page Mobile app Repetition Parameter (computer programming) Number CAN bus Computer configuration Term (mathematics) String (computer science) Right angle Quicksort Hacker (term) Information security World Wide Web Consortium
Android (robot) Pixel Building Randomization Context awareness State of matter Code Multiplication sign Source code Cloud computing Set (mathematics) Open set Mereology Perspective (visual) Junction (traffic) Computer programming Variable (mathematics) Parabola Front and back ends Web 2.0 Pattern language Electronic visual display Physical law Software framework Process (computing) Endliche Modelltheorie Information security Exception handling Injektivität Metropolitan area network Arm Electric generator View (database) Block (periodic table) Building Interior (topology) Hecke operator Bit Instance (computer science) Formal language Demoscene Product (business) Web application Type theory Prime ideal Process (computing) Ring (mathematics) Order (biology) Software testing Right angle Pattern language Procedural programming Hacker (term) Information security Freeware Physical system Resultant Web page Inheritance (object-oriented programming) Service (economics) Virtual machine Letterpress printing Maxima and minima Student's t-test Code Computer Goodness of fit Software repository Integrated development environment Software testing Traffic reporting World Wide Web Consortium User interface Mobile app Information Key (cryptography) Cellular automaton Projective plane Debugger Code Coma Berenices Database Division (mathematics) Cartesian coordinate system System call Perspective (visual) Word Integrated development environment Visualization (computer graphics) Personal digital assistant Revision control Gastropod shell Library (computing)
Mobile app Code Single-precision floating-point format Order (biology) Statement (computer science) ACID Bit Line (geometry) Endliche Modelltheorie Hacker (term) Vulnerability (computing) World Wide Web Consortium
Slide rule Code Moment (mathematics) MIDI ACID 3 (number) Computer Product (business) String (computer science) Core dump Modul <Datentyp> Boundary value problem Cuboid Software testing Damping System identification Information security Form (programming) World Wide Web Consortium Mobile app Raw image format Moment (mathematics) Planning Bit Line (geometry) Cartesian coordinate system Process modeling Tablet computer Type theory Process (computing) Kernel (computing) Software Personal digital assistant Order (biology) output Endliche Modelltheorie Hacker (term) Boundary value problem
Mobile app Multiplication sign Wage labour Hacker (term) Staff (military) World Wide Web Consortium
by so inside gets that had this project how due to my my little talk here on it's about whether that's and hectares and you and on 1st of all like to introduce myself a little bit to you so you have an argument or well global mindless on X and 1 of my original passport name by the and doing security consulting and procured selects so working for our our dear keynote speaker or in his company at least on at nite I user like other stuff which I'm not going to make it work but it's more like a funny privately of or I go out and get wasted or than a bit of my my fetish kind of thing is of we are as applications so many examples today will be armed based on on rubyonrail Rails but I hope you can generalize from those 2 on other platforms languages and frameworks abound and of the most the funds to be I ever had was the format string the students who go back into some 12 on this as soon getting e-mails for that part with people of get this actual I'm back an assignments to exploit its so that there was from a moment with and the stuff down there is just 1 my GPG of key so this 1 context of securely you use that key OK but let's start with the content what's this all about so all I've been I've been asked to to give a presentation here so I had to come up with something and I want to not only shows some patterns of vulnerabilities in web publications but more also kind of of solutions where what you should keep in mind if you're developing application or if you're on deploying more running the infrastructure from so many
evolved developers to both also still + still was still less developed was also it's about code from so what you see here in the audience I
guess are some who look you please raise your hand if you're actively developing some kind of application you to web application or non that application OK not too many of them already that the right and so on developers write code and that's not the the only thing they do they get back referred to have to fix the codes have to maintain their code and have to live with it want to start it's I guess it's hard to get rid of that so you get a maintain it to a certain extent on and we're well I'll I'll try to show you some things you should keep in mind while maintaining your code and from a security perspective so the Mongols this talk is making fun of anyone not even developers of extreme I want to point out some mistakes you want purporting trip in and around some approaches to to get rid of a good amount of security issues just by the way you're dealing with your codebase and dealing with the backward forward secured report OK we we almost half this so developers of signal who have few who is kind of a project manager Product Manager placarding developers no 1 1 but at least 1 and who's a hacker come off no accuracy is stick to the T. come on buddy good couple that's very cool cool so pickers only God so this
is Sector so like guys with the masks and Emirates mission new computers on actually
there are certain types of factors the ones with the ski mask the black hats which of the real bad guys ones with the white that of the good guys which say into that on a daily basis and there's something in between if you have lost mask and the white hat at the same time and you may you not do something shady even your called a greater so quite a low militias like at pure evil Aramean all the boxes and gray at all on other malicious that will of somewhere in between who may or may not be family just for the terminology of but then the problem is security is hard and I mean if not in a way that this exploit does not work because it's a lot and place or that you cannot publish cell because there's some radioactive in bypass securities hard enough for the hackers but it's even harder for the guys who had right to code to to defend because that's the that's the way harder problem to defend your local based because 1 it can use 1 but which you can it and successfully exploit mom and you need to close all the boxes because I'm only then you're safe enough and still things might go wrong on so unimportant security feature Our and passwords who of you does not have a passport good so who argue that has used a password reset in the last half year apothecaries said it's a pain in the this paper so usually you know works like this that the sum of real specific example you you are the allowed the form which service and e-mail and you get and link to reset your past but this link would contain some kind of consequence and then you reading that secret for a prompt can include the new passport or even are being locked in directly In will be a typically looks like this so we have our SuperARV random secure random tokens and will find the user by its own recent OK that's a very simplified thing so of this is how it's usually done and there's a problem at least was was my nicely full there have to switch to my simple nobodies so that's important for the public research process we just solved but if you compare number to a string starting with the same number of my will return that's true are if you if you have a training with the monomeric start and compared to 0 at my school returned as well and those of other to immunize my simple that's almost like PHP types of going and we can we can benefit from Atticus protective from this in context of urban recitations because with XML in the older worsens and still with Jason input we can actually give in the parameters and American mothers string off like as a spring 1 but the number 1 like the fixed number and in Ruby terminology so from 2 to demonstrate this here we got it l legit password reset so we we the full tokens very long very structured token you could never get it intersecting new alleged password and then that comes along and uses the number 0 which would match this stoking and set its own password so this is pretty broken and a lot lot of on ratification made this mistake from for instance blankets if the system so I was able without even submitting anything they're coming review 1 member and just resetting random accounts and so 1 of those was the review board member so I could look at all the talks and we don't want them or upload them but instead I along was a white and told them and yeah was invited to to the 2 biggest and devices that authentication clapping which is very popular formula it's applications they had the same problem and so that was used pretty widespread so of that was the real issue because you could fix you reset random accounts and if know that if you know of a profit reset the spending on news they would just go and type men and then we get a profit resettling would think I didn't do this someone Frank need but you could with sending a number instead of a string of reset its proper well read out but of so we know that the 2 main point here is not only that we can reset passwords but who would you
blame for this whose whose fault it this like how it could be 0 my god might equally stupid really stupid to compare strings to numbers into the dust we things instead of some instead of just trying arrow and you because they are remember from workers stupid for letting me past numerics instead of strings or not telling me that this would have side effects or the developer is stupid because he didn't know or I'm stupid because it is close this technique because some of that so I think you cannot really blame anyone but it's it's a big complex things around ratification meaning that the Web server database the framework of the Program in which the developers uses all these tools to create something and you you have to to be aware of a lot of side effects and can cannot really on a judge if it's good or bad because there might be stopped which is being documented can tune the disease they're framework developers didn't know so I would really not blame anyone but it's a problem so what would we set part 2 an
ownCloud so this time PhD in of that their work like this so we compute shall 1 of the username and the negation on 1st of all this is not a good random source so you might be able to predict this token but it was worse
so unique ID would give you some time prefix identifier which is supposed to be unique but not random based on the current and like the 2nd and back in the days when this was discovered what the case that this unique ID always start with 4 and so on the plus operator if you look at that man with plus to the string of 4 after something that would evaluate to use a number that again would be cast to the string of the number of 4 and then put into someone so the unit is the globally working and our only profit receptor looking back at this point of time what the someone hessian of number 4 on less username started with a number but that's a comic is we can start so on yes that's pretty fucked up for
half an hour and and it may mean if if you're using PHP you should be aware of at least of this type casting winners because that's the fermented quite well both of yeah rejecting passports so on another reason why I kind of topic resets use when I ordered the application you look at the authentication authorization parts 1st so on but the research is a crucial feature which can allow on authenticated access to applications and therefore if you're developing an application was possibly that special care should be taken not to screw it up too much or not to screw it up at all at least so on this 1 something
completely different just
another part of research um this is again remember coat this used to be part this suspect he's still is a room in red challenge put up on this stuff agrees that mechanism is so far at a verbatim copy of the passport reset mechanism in discourse which is which is like online forums singing in an reported this and use this example as the mice challenged so I'm gonna spoil my own challenge here if you don't want a lot of it and played yourself this through but this state here are so it's a bit it's just the big complex and so on we try to find the user by its recent tokens and if we don't find it by its so it's a problem that match we are safe so in a we don't we we don't find it so we go to the 3 and we pull out the user ID and out of the domain Paramita out of session and then we find that user and then if we have a user here we can reset the password I'm problem being here whom we we got a free free look up in here in this session so we can say which which in the session that will be used to find or a user and that means that must not be public resettlement it could also be persists after open an opposition after when is a spring which may or may not start with number if it starts with a number and we pull out this year's token here just say instead of a token instead of the token we say on this this is evidence that open an arm make sure our actual acceptable in session starts number because we can see that on the site that would give us find method would cast that string to a number of moons and we find the user with the user ID or whatever or sister talking starts with typically 1 use the number 1 because then you get the admin account and then we could reset admins past work and the nice thing is we don't even need to trigger an e-mail to to generate a token because it's it's completely out of the session on so here again from the wood as it was a bit of and once a stupid but brave to to allow armed to pull out the session value by a user given and key uh at this point and therefore fixed was actually to prefix this session parameter was the Pof work research something so was a fixed so you couldn't inject arbitrary on values at this point anymore that was like the main part of their fixed but I would learn well buffet resets
things beaches it it can break in so many ways it could also be that Europe in your tokens are predictable because you don't use you're not getting good friends 1st just by accident but then the problem is of course we needed it shows people forget their profits they lose their or maybe very key chain filed or they get around and don't know their property must have get resented because again drunk something on Amazon not well that's a problem but actually it's just as an example for global problems these because of building secure applications and unknown web applications is really really hard if you just start I mean I myself started putting some tiny upload script and like was done now when a minute Mr. directory to levels would get a student as and do this for why we would they try to do this so we have but this instance so the problem is the problem with that the so you see again equivalent of India and they're going to submit this attack is a linear tank at that moment that palynological columns and there's a book that the initial limitations that thank you and if it's small the white guy which starts about it it will be the there was a ski mask and home he will not tell you but will report to database and even more meaning than the guy who disclosed to you so in a a perfect world everybody discloses like the diagram he doesn't even wanted to shift freight so all I could run the bit about background to send shirts and also famous here are but I know have so for for refers to develop part if you get a disclosure about something union and universities like it's it's between the point X and and what what's next well it's it's about and I think the researcher you may devoted to Shiva background to at least credits because pick of life left fame while you could do this but no no that's not good
because you wanna you
wanna go a bit deeper than tried to to understand what's being brought to use because x you you get by by getting a responsible disclosure or a security alert from from a 3rd party he just got from free consulting or free of kind of small free audit and should be thankful and try to to find the root cause what went wrong there can we can we include to test for this so in our continuous integration or unit test and so this will never happen again and we don't have to give up the free cheese again and we can we can we find other instances that guy who reported this did not see so we can fix you more and have this whole of benefits security wise from from that report and this you should really feedback and tell you ever reported this you could you verify this is fixed now because you might just have fixed which is in the 100 per cent correct or working so long you might have overseen by just another quantities and this is really really make sure that to fix this kind of bulletproof and the most important thing learned via the ball the issue and improve because you just got the it's it's it's just use it and to improve on your area code and you're not on the whole infrastructure but a code based upon it so on another
example and the are original around surprise from the mandates and so on and on go I guess some of the the top guys started off this project and it's a indeed based key where you can all lined it on my on file and the back and it would keep get poetry in order to and keep track of the changes you made to the beach you get so come from this BTS search method and this is Ruby code again but not lexically rails but enough about the matter so we this is where research and stuff is very fond argument we can control the rest not found at this point this will be passed to the shell and invoke a graph good what what do we see you know while these options that just assume its head and the Moon would put here and right all query and we have here an so this will in the cell and s of the good way to call X like you learn you shouldn't just several long frames with a shell command because the hacker can come along and put in a cynical on or back takes or polar collaborated with the log records and didn't take months so this way off shell metacharacter education in the case here but it's of some something which is quite underhanded and of often not seen the you we can inject arguments to graph on the actual queries I will become an argument starting with Sebastian and the rest will be had so we we are will have the search terms being hats instead of whatever is supposed to be searched for so by consulting the mandates with find the option best control over which stands for open files and pages we so what the actual vulnerability and the actual expert this was to to search for best so whatever settlement what we could even put in more of a simple matter a connect and said cooks exposed cell code so all of Markham you could after the DL critical complete command line and yeah that was fine because base all we're safe here because we are not allowing the cell characters pop and thing again they weren't aware of the full spectrum of what the graph is able to do with its arguments so on aspects of the
problem is kind of immense signaling which is not to up his pictures of success here arguments and the options this all makes the same command line and that's where this sort of screw up came from so on it all it's nice but in the end you forgot 1 little thing which then on is a disaster in terms of security right so on
and so there were some showcases to perfectly said and our 1 page exercise mom we have seen several ways of all possible research could fail like been talking being predictable or by possible by a number instead of string because much was weird but on how to improve the so can you read this no chin
OK and basically this is the of give block of the Navy library of Android right after J . reported stage stage fright to them so you get to all of word of state fright so would you busy you could see if he could read uh here is like the of commit just the Baltic into Joel flows like enable checking instead of all footing year pixels small in non non-excludability soulful for their so on it looks like when when stage fright and this model application example but still when when stage fright was reported to to and writing fiction we will like at a guess about or that into jail we never checked for this let's let's put the just go nuts about this and I guess they they learn something and I hope they keep it up because I
use it you should go if you learn not forget it because then you wouldn't make the same mistake again he should try to generalize students by said before and on try to find the patterns which you can somewhere used to find other instances in other parts of the code in other projects and it's try to apply it to whatever your maintaining in order to choose from to get rid of this type of issue of lack of and even better this may be a great mn many lives like OSS are enough for this is that it's just told us in the morning keynote so users have a good source of information way can find examples of some when abilities which then you should take really understand and think about them is like would this affect me is somewhere in my code or can I can I checked for this type of issue even before it introduced because someone in the gene might make this mistake and if we get a test for this so would never can happen that you can commit the successful spellings went out of their mind that but I'll never do this again and all fix it in the proper way well on this brings us to tools so you should try to form the final fitting toolchain for your project free application on in order to to have a good the baseline of security scanning from a new build our testing process that even this true for a for the heck a perspective is that can with framework for the automatic defined parts and what's over there that guy can help you will you will tell you about his tools tomorrow so yes the but but of generating generating machine so by I want to focus on the but avoided machine but but the where well the for with the 2 tools still fool and I don't know if anyone remembers this the ancient CVE and openness is l in rings a bell retentive you remember that 1 In our case a couple of things so come back into some 6 dB and maintain I was like OK openness cell quite important piece of code all around on automated scanner called on 1 of NASA's l m would complain about 1 uninitialized arrival and tell this mating and they look understand initialize pharaoh of arrival that's not good OK to maintain a set well so let's just initialize it and commit this as a security improvement or whatever and that will be compiled in every division and division based on the stroke wrong to blow from 2006 and inter-cell made someone figured that this mistake was made becuse xt the variable had to be initialized in order to contain enough entropy for the key generation openness so like every hour sake he was basically just depending on the process ID of the process which created and not any additional randomness yes and so we had a we had a pretty pretty nice tight keyspace from could just generate every possible from SSH for the 509 but did every possible our safety in a given size that which was created by a Debian between 2006 and 2008 that was pretty up pretty bad so on lesson learned try to verify what to tell because it's just stupid computer which that's what to do but just to tell the people what to do that's right around an arm I mean if you ever heard of whether scanner running on a web application get tough on the pages report and you told being told could you verify this and that's useful in checks and stuff and the whole it's terrible could of but yeah so don't trust widely on another thing this is an example for an another scene you should keep in mind when I'm bowling and annotation or a building a whole landscape around and so on that holiday all was going on get help because they have really by security and uh somebody but wanted programs so get up has from from called Europe which is basically a looking at your arm as states pop keeping a print and then pulls all jews out of there database from the end result of emissions if you mind with that excesses report or not so it would if I connected it was by a 6 to get it up to come and will look at my key and C L 1 of their own fault triple but I may not because it's private and I'm not far off so from and think of it as a super smart the wording of itself well yes so the front end SSH except states connects looks at some stuff about you which is signal while our environment arrival and then it would start a 2nd h post process on the same host to the actual back and weather report is you monoclonal or push or pull or somehow access and from I figured by messing around with me you the name on the web interface they could inject environment rivals to that 2nd SSH process because it somehow got by arrival which that username equals junction so a polluted the environment of the of the busier of was able to inject new lines in in my username and introduce new environment parabola by this so that what's the actual payload and of to to actually make the the 2nd sh process former self me on get up the comes so far I've preloaded live fake food because then SSH the as they to the back process would think I am running as food cool I cannot access the Flesh fruit as age of unknown knowledge and I I I kind of story and I need to ask for because actually 1 running food so how then I've said the display of arrival in order to trigger stage of while ended up in using the next so the idea so of the the visuals that and could just type of information mark or whatever so shut Monty wonderful but yeah but what does that mean it's not always without a call like self-contained issues that for instance from a single injection or above fulfill keep him you can just see in the coding there is if you if you use to read code yelling at you and saying hey look at me I'm remarkable ability but sometimes it's the more complex because you have you you must see whatever you're running on your Service or somewhere in in it's context because the environment is trying in influences obviously from the old education in the ways so you should from time to time try to switch of perspective on what you're developing or even if you want to stuff you you usually get better results if you try to change the perspective not not only looking at the looking procedure but also what the the web passed to the back end maybe some some had arrival to haven't even thought about and so a bit more or a bit open mindedness also helps a lot of that is well the minutes OK from so schemas of time and
coming it's either the optional actually but I just like to point out try try to be tried to be the attacker yourself if you're developing application and try to question a bit what written there because that's what the SEC is usually do they look at code and questions every single statement every single line in order to find a floor and think about threat so we we
got a threat here this would Skywalker and we get our method which is the best stock and or acid the best desktop has a small tiny security vulnerability and this always look skywalker fluent and blew up the whole hold best so we get threats from what this makes the threat model
if more like this more like a blueprint so we got traveling from this great tool that school who the guys which article person great than and starts traveling on their code 1 OK if I come back next year I wanna see all your hands up if it's really helpful beaches on if you have a kind of blueprint of your acid which in this case is when of which pretty high value targets used to try to I mean you may only can give pointers and explain the whole way of traveling but you should try to decompose you're application where makes sense to give it a bit modular and to get a good overview and identify where are my boundaries especially my trust boundaries where where where the user input where does it stop sanitized well the threats by drawing of more or less abstract from picture of pure etc. applications and drawing lines as boundaries you would almost instantly see whether threats you have might have to think about a bit about it a bit but you would see where can they happen and how will to happen and then you go on to mitigate these threats and then you're not done because you keep it over and over again because yes and securities the thing you just like in the process of but for a formalized approach on on this you would look up Microsoft STL or sprite which itself the engineering will traveling and so I would I would require anyone to just full plane is dealt right but to adopt it in a way that it fits your needs because not everybody to all segments of the people but that's the stuff they use themselves on so over and over again that's like the biggest problem I see is that people don't learn from other people's mistakes and the same types of boxes popping up over and over and over and over and it's some 12 understood that form strings it's football commentaries and stuff like so come white but the pessimistic for a moment why does this happen people of people and maybe they can my must fall fall down on their own in order to see what the actual problem is people don't learn new that's that for for for the product for the software for the whole Supply landscape that's good for me it's just security for me to come in because if if if every now and then a new process scripting gets introduced to his stuff I have test unhappy have and back and they get what again well but we should fix this by once and for all and there there are well that our approach is to start at the computing from scratch and that establishing the kernel not written in C or yet the whole clean slate approach but on accede to be realistic and I wanted to point out some some things and I hope they made it through so to be realistic the the
dump here don't don't don't just try to learn and never stop learning try to learn from the mistakes and repeat looking at a coat and all doing during like assess yourself and try to get a better but the mind set using the tools all you have and you can afford or and put in there so actually that's my last slide
thank you for your time and my my continuous at 0 so I think I'm done and only if you have any questions at the left and the pigeons and next became yet so other questions OK thank you


  520 ms - page object


AV-Portal 3.21.3 (19e43a18c8aa08bcbdf3e35b975c18acb737c630)